Dalam r4ngkaian ini, kita akan melihat cara m3ngendalikan banyak relay dengan mikrokontroler NodeMCU32S atau ESP8266 dan register geser 74HC595. Kemudian, kita akan melihat cara menangani setiap relai secara individual. Terakhir, kita akan membuat antarmuka web untuk mengendalikan setiap relai melalui internet. Proyek ini merupakan dasar yang baik untuk mengembangkan sistem otomasi rumah untuk rumah Anda.
Tutorial ini dapat diterapkan pada mikrokontroler mana pun. Anda harus berhati-hati dalam memodifikasi diagram koneksi dan kode agar s3suai dengan penggunaan Anda.
Bahan-bahan:
- NodeMCU32S atau ESP8266 adalah komputer yang terdiri dari 32 komponen utama, ...
- Papan tempat memotong roti
- Kabel jumper
- Modul relai 8
- Register pergeseran 74hc595
Prinsip Kerja:
Untuk mengendalikan 8 modul relai, 8 keluaran digital mikrokontroler harus disediakan. Untuk menghemat jumlah masukan/keluaran mikrokontroler, rangkaian terpadu yang berbeda dapat digunakan. Khususnya, register geser. Register geser 74HC595 memiliki 8 keluaran yang dapat diprogram, yang dapat diatur ke 0 atau 5V dan hanya memerlukan 3 masukan digital. Oleh karena itu, solusi ini ideal untuk memungkinkan kita mengendalikan relai dan menyimpan keluaran mikrokontroler untuk fungsi lainnya.
Skema
Untuk m3ngontrol register geser, NodeMCU dihubungkan sebagai berikut:
- Ground sirkuit terpadu GND
- Pin catu daya Vcc. Biasanya terhubung ke 5V
- SH_CP atau RCLK terhubung ke pin 33
- ST_CP atau SRCLK terhubung ke pin 32
- DS atau SER terhubung ke pin 25
0utput dari sirkuit terpadu 74HC595 (Q0-Q7) terhubung langsung ke input modul relai 8.
Dalam tutorial ini, k4mi tidak menggunakan pin Enable (OE) dan Reset (MR).
- Output OE aktif, mengaktifkan LOW. Pin terhubung ke GND untuk mengaktifkan output.
- Reset MR Master, aktif LOW. Pin reset. Tersambung ke 5V
Perhatian: Output dari mikrokontroler dibatasi oleh arus. Untuk menggerakkan banyak relai, sangat disarankan untuk menggunakan sumber tegangan eksternal.

Kode File:
Dal4m kode berikut, pertama-tama kita akan mendefinisikan fung5i dasar untuk mengelola shift register. Kemudian kita akan mengoperasikan relay satu per satu menggunakan for loop.
//Konstanta #define jumlah_74hc595 1 #define numOfRegisterPins jumlah_74hc595 * 8 #define SER_Pin 25 #define RCLK_Pin 33 #define SRCLK_Pin 32 //Variabel boolean register [numOfRegisterPins]; void setup (){ //Inisialisasi Serial USB Serial .begin (115200); Serial .println ( F ( "Inisialisasi Sistem" )); //Inisialisasi register pinMode (SER_Pin , OUTPUT ); pinMode (RCLK_Pin , OUTPUT ); pinMode (SRCLK_Pin , OUTPUT ); clearRegisters(); writeRegisters(); delay (500); } batal loop (){ tulisGrpRelay(); } void clearRegisters(){ /* function clearRegisters */ //// Hapus variabel register for ( int i = numOfRegisterPins - 1; i >= 0; i -- ){ registers[i] = HIGH ; //LOW; }} void writeRegisters(){ /* function writeRegisters */ //// Tulis register setelah ditetapkan digitalWrite (RCLK_Pin , LOW ); for ( int i = numOfRegisterPins - 1; i >= 0; i -- ){ digitalWrite (SRCLK_Pin , LOW ); int val = registers[i]; digitalWrite (SER_Pin , val); digitalWrite (SRCLK_Pin , HIGH ); } digitalWrite (RCLK_Pin , HIGH ); } void setRegisterPin( int index , int value){ /* function setRegisterPin */ ////Tetapkan variabel register ke HIGH atau LOW registers[index] = value; } void writeGrpRelay(){ /* fungsi writeGrpRelay */ untuk ( int i = numOfRegisterPins - 1; i >= 0; i -- ){ Serial.print ( F ( "Relay" )); Serial.print (i); Serial.println ( F ( "TINGGI" ) ) ; setRegisterPin (i , RENDAH ) ; writeRegisters(); tunda (200); Serial.print (F( "Relay" )); Serial.print (i); Serial.println (F( "RENDAH" ) ) ; setRegisterPin (i , TINGGI ); writeRegisters(); tunda ( 500) ; Bahasa Indonesia :
Hasil
Setelah komponen tersambung dengan benar dan kode dimuat ke mikrokontroler, relai akan aktif satu demi satu.

Bonus: Kontrol 16 relai dengan dua register pergeseran.
Skema

Kode
Keistimewaan kode ini adalah untuk membuatnya bekerja d3ngan register geser kedua, Anda hanya perlu mengub4h parameternya:
#definisikan jumlah_74hc595s 2
Hasil

Tidak ada komentar:
Posting Komentar