Daftar Isi:

Relay I2C Bertemu Arduino IDE: 5 Langkah
Relay I2C Bertemu Arduino IDE: 5 Langkah

Video: Relay I2C Bertemu Arduino IDE: 5 Langkah

Video: Relay I2C Bertemu Arduino IDE: 5 Langkah
Video: How to Access Relay - Full Tutorial - ESP & Arduino 2024, Juli
Anonim
Relay I2C Bertemu Arduino IDE
Relay I2C Bertemu Arduino IDE

Saya memesan relayboard yang bagus tetapi tidak ada instruksi ArduinoIDE, hanya Raspberry Pi e.o. Saya mencari tahu cara menggunakannya dengan Arduino dan ingin membagikannya sehingga Anda dapat menghemat waktu itu.

Contoh RaspberryPi asli:

wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099

Hal yang menyenangkan adalah Anda dapat menumpuk hingga 4 papan. Jadi Anda bisa menggunakan maks. 4 x 4 = 16 relay pada satu bus I2C.

Ada juga beberapa kontra:

  • terminal kecil, tidak muat 1 mm2 kawat
  • Anda tidak dapat mengubah kabel konektor bawah saat ditumpuk bersama-sama

Tapi papan masih berguna.

Langkah 1: Wirering

Kabel
Kabel
Kabel
Kabel
Kabel
Kabel

Dalam gambar Anda dapat melihat wirering.

52Pi membutuhkan 5V (untuk relai) dan 3.3V (chip I2C).

Jadi 5 kabel yang dibutuhkan:

  • GND ke GND
  • 5 V hingga 5 V
  • 3,3 V hingga 3,3 V
  • SLA ke SLA
  • SCL ke SCL

Jika Anda menggunakan Arduino UNO atau 5 V lainnya, waspadai maksimum 3, 6 V dari pengontrol I2C! Gunakan resistor atau yang lain untuk menurunkan 5 V dari PIN Arduino!

Langkah 2: Contoh Kode Sederhana:

/* Contoh Arduino IDE (ESP) untuk relaisboard I2C.

* Oleh Laurens Korste www.boktorrobotica.nl * gratis untuk digunakan. */ #include // untuk komunikasi I2C void setup() { // aturan ini bukan untuk UNO atau papan dengan pin I2C khusus Wire.begin(D1, D2); // bergabung dengan bus i2c dengan SDA=D1 dan SCL=D2 untuk NodeMCU } void loop() { Wire.beginTransmission(0x10);/* mulai mentransmisikan ke alamat I2C 10 (untuk mengubah juga ke 11, 12 atau 13) */ Wire.tulis(0x01); /* pilihan relais 1 (dari 4) di papan 10 (juga 0x02, 0x03, 0x04) */ Wire.write(0xFF); /* atur relais 1 di papan 10 ke ON. semua angka > 0 akan melakukannya */ Wire.endTransmission(); /* hentikan transmisi */ delay(3000); Wire.beginTransmission (0x10); /* */ Wire.write(0x01); Kawat.tulis (0x00); /* set relais 1 pada board 10 ke OFF */ Wire.endTransmission(); /* hentikan transmisi */ delay(3000); }

Langkah 3: Empat Kode Tes Relay

/* sketsa oleh Laurens Korste untuk Arduino (ESP / NodeMCU)

* Tetapi papan lain akan melakukan juga * www.boktorrobotica.nl * Dalam skeych ini, 4 relai akan diaktifkan dan dinonaktifkan */ #include // untuk komunikasi I2C void setup() { Serial.begin(115200); // memulai serial untuk debug (9600 untuk UNO) Wire.begin(D1, D2); // bergabung dengan bus i2c dengan SDA=D1 dan SCL=D2 dari NodeMCU tidak perlu UNO } void loop() { for (int i=1; i<=4; i++){ Wire.beginTransmission(0x10); // mulai dengan alamat perangkat Wire.write(i); // pilih relais Wire.write(0xFF); // kirim kode "on" FF (setiap hitungan dari 01 hingga FF akan berhasil) Wire.endTransmission(); // hentikan transmisi Serial.write(i); Serial.println("an"); penundaan (1000); Wire.beginTransmission (0x10); // mulai dengan alamat perangkat Wire.write(i); Kawat.tulis (0x00); // Kirim kode "mati" Wire.endTransmission(); // hentikan transmisi Serial.write(i); Serial.println(" ut "); penundaan (1000); } }

Langkah 4: Proyek Saya

Proyek saya
Proyek saya
Proyek saya
Proyek saya

Saya telah menulis kode untuk mengoperasikan 3 daun jendela saya. Ini dapat dilakukan dengan sakelar tetapi juga dengan aplikasi BLYNK, Lihat gambar.

  • Satu penekanan singkat akan mulai menggerakkan satu rana (atau menghentikannya saat sedang bergerak).
  • Satu tekan lama dan ketiga daun jendela terbuka (atau menutup atau berhenti).
  • Tekanan ganda: daun jendela masuk ke posisi "lubang".

Seperti yang terlihat pada gambar, saya juga mengintegrasikan sensor suhu dan cahaya.

Sekarang semuanya pada PCB dasar yang baik dan rapi dalam sebuah kotak.

Langkah 5: Panggil Relay Dengan Satu Perintah

Berguna jika Anda hanya membutuhkan satu perintah untuk mengaktifkan atau menonaktifkan relai. Di bawah ini adalah fungsi yang dapat melakukan ini (dengan lowbyte dan highbyte).

/* sketsa oleh Laurens Korste untuk Arduino (ESP / NodeMCU) dengan papan relai I2C * Tetapi papan lain juga akan melakukannya * href= https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099; www.boktorrobotica.nl * Dalam sketsa ini relai akan diaktifkan dengan satu panggilan; *// #include // untuk komunikasi I2C // Deklarasi relai. 4 PCB Per PCB 4 relai mungkin. Dalam sketsa ini hanya dua PCB // PCB dan relai digabungkan sehingga dapat dipanggil dengan satu perintah const byte PutOn=0xFF; //perintah untuk menyalakan const byte PutOff=0x00; //perintah untuk mematikan const kata Relay1bord1=0x1001; //Anda dapat mengubah nama dengan contoh Relay1 const kata Relay2bord1=0x1002; //Anda dapat mengubah nama dengan contoh Relay2 const kata Relay3bord1=0x1003; //Anda dapat mengubah nama dengan contoh Relay3 const kata Relay4bord1=0x1004; //Anda dapat mengubah nama dengan contoh Relay4 const kata Relay1bord2=0x1101; //Anda dapat mengubah nama dengan contoh Relay5 const w ord Relay2bord2=0x1102; //Anda dapat memilih nama dengan contoh Relay6 const word Relay3bord2=0x1103; //Anda dapat memilih nama dengan contoh Relay7 const word Relay4bord2=0x1104; //Anda dapat menentukan nama dengan contoh Relay8 const word Relay1bord3=0x1201; //anda dapat memilih nama dengan contoh Relay9 const word Relay2bord4=0x1302; //anda dapat memilih nama dengan contoh Relay14 void setup() { Serial.begin(115200); // memulai serial untuk debug (9600 untuk UNO) Wire.begin(D1, D2); // bergabung dengan bus i2c dengan SDA=D1 dan SCL=D2 dari NodeMCU tidak perlu UNO } void loop() { // untuk mengganti relay 4 pada PCB 2 pada RelayActie(Relay4bord2, PutOn); penundaan (1000); // untuk mematikan relai 4 pada PCB 2 RelayActie(Relay4bord2, PutOff); penundaan (1000); } void RelayActie(Relay kata, byte OnOrOff){ Wire.beginTransmission (highByte(Relay)); Wire.write (lowByte(Relay)); Wire.write (OnOrOff); Kawat.endTransmisi(); }

Direkomendasikan: