Isi kandungan:

Relay I2C Met Arduino IDE: 5 Langkah
Relay I2C Met Arduino IDE: 5 Langkah

Video: Relay I2C Met Arduino IDE: 5 Langkah

Video: Relay I2C Met Arduino IDE: 5 Langkah
Video: Connect Up To 992 Servos To An Arduino, Using I2C 2024, Julai
Anonim
Relay I2C Met Arduino IDE
Relay I2C Met Arduino IDE

Saya memesan papan luncur yang bagus tetapi tidak ada arahan ArduinoIDE, hanya Raspberry Pi e.o. Saya mengetahui cara menggunakannya dengan Arduino dan ingin membaginya supaya anda dapat menjimatkan masa itu.

Contoh RaspberryPi asal:

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

Perkara yang menarik ialah anda boleh menumpuk sehingga 4 papan. Oleh itu, anda boleh menggunakan maks. 4 x 4 = 16 geganti pada satu bas I2C.

Terdapat juga beberapa kekurangan:

  • terminal kecil, tidak sesuai dengan wayar 1 mm2
  • anda tidak boleh menukar pendawaian penyambung bawah apabila disusun bersama

Tetapi papan tetap berguna.

Langkah 1: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Dalam gambar anda dapat melihat pendawaian.

52Pi memerlukan kedua-dua 5V (untuk relay) en 3.3V (cip I2C).

Oleh itu, diperlukan 5 wayar:

  • GND ke GND
  • 5 V hingga 5 V
  • 3.3 V hingga 3.3 V
  • SLA hingga SLA
  • SCL ke SCL

Sekiranya anda menggunakan Arduino UNO atau 5 V lain, berhati-hatilah dengan maksimum 3, 6 V dari pengawal I2C! Gunakan perintang atau yang lain untuk menurunkan 5 V dari PIN Arduino!

Langkah 2: Contoh Kod Ringkas:

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

* Oleh Laurens Korste www.boktorrobotica.nl * percuma untuk digunakan. * / #include // untuk persediaan tidak sah komunikasi I2C () {// peraturan ini bukan untuk UNO atau papan dengan pin I2C khusus Wire.begin (D1, D2); // sertai bas i2c dengan SDA = D1 dan SCL = D2 untuk NodeMCU} gelung kosong () {Wire.beginTransmission (0x10); / * mulakan penghantaran ke alamat I2C 10 (untuk berubah juga menjadi 11, 12 atau 13) * / Kawat.tulis (0x01); / * pilihan relais 1 (daripada 4) pada papan 10 (juga 0x02, 0x03, 0x04) * / Wire.write (0xFF); / * tetapkan relais 1 pada papan 10 hingga AKTIF. semua nombor> 0 akan melakukannya * / Wire.endTransmission (); / * hentikan penghantaran * / kelewatan (3000); Wire.beginTransmission (0x10); / * * / Wire.write (0x01); Wire.write (0x00); / * tetapkan relais 1 pada papan 10 ke MATI * / Wire.endTransmission (); / * hentikan penghantaran * / kelewatan (3000); }

Langkah 3: Kod Ujian Empat Relay

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

* Tetapi papan lain juga akan melakukan * www.boktorrobotica.nl * Dalam skeych al ini, 4 relay akan diaktifkan dan dinyahaktifkan * / #include // untuk penyediaan kekosongan komunikasi I2C () {Serial.begin (115200); // memulakan siri untuk debug (9600 untuk UNO) Wire.begin (D1, D2); // sertai bas i2c dengan SDA = D1 dan SCL = D2 dari NodeMCU tidak memerlukan UNO} gelung kosong () {untuk (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // mulakan dengan alamat peranti Wire.write (i); // pilih relais Wire.write (0xFF); // hantar kod "on" FF (setiap kiraan dari 01 hingga FF akan dilakukan) Wire.endTransmission (); // berhenti menghantar Serial.write (i); Serial.println ("aan"); kelewatan (1000); Wire.beginTransmission (0x10); // mulakan dengan alamat peranti Wire.write (i); Wire.write (0x00); // Hantar kod "off" Wire.endTransmission (); // berhenti menghantar Serial.write (i); Serial.println ("uit"); kelewatan (1000); }}

Langkah 4: Projek Saya

Projek saya
Projek saya
Projek saya
Projek saya

Saya telah menulis kod untuk mengendalikan 3 penutup saya. Ini boleh dilakukan dengan suis tetapi juga dengan aplikasi BLYNK, Lihat gambar.

  • Satu tekan pendek akan mula menggerakkan satu pengatup (atau menghentikannya semasa bergerak).
  • Satu tekan lama dan ketiga-tiga penutup terbuka (atau tutup atau berhenti).
  • Tekanan berganda: bidai menuju ke kedudukan "lubang".

Seperti yang dapat dilihat dalam gambar, saya juga menyatukan sensor suhu dan cahaya.

Sekarang semuanya ada pada PCB asas yang baik dan kemas dalam kotak.

Langkah 5: Panggil Relay Dengan Satu Perintah

Ia berguna jika anda hanya memerlukan satu arahan untuk mengaktifkan atau menyahaktifkan geganti. Berikut adalah fungsi yang boleh melakukan ini (dengan lowbyte dan highbyte).

/ * lakaran oleh Laurens Korste untuk Arduino (ESP / NodeMCU) dengan relay I2C * Tetapi papan lain juga akan melakukan * 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 lakaran ini, relay akan diaktifkan dengan satu panggilan; * // #include // untuk komunikasi I2C // Relays Decaratie. 4 PCB Per PCB 4 relai mungkin. Dalam lakaran ini hanya dua PCB // PCB dan geganti digabungkan sehingga dapat dipanggil dengan satu perintah const byte PutOn = 0xFF; // perintah untuk menghidupkan const byte PutOff = 0x00; // perintah untuk mematikan kata konstanta Relay1bord1 = 0x1001; // anda boleh mencalonkan nama dengan contoh Relay1 const word Relay2bord1 = 0x1002; // anda boleh berpeluang memberikan nama dengan contoh Relay2 const word Relay3bord1 = 0x1003; // anda boleh berpeluang nama dengan contoh kata Relay3 const Relay4bord1 = 0x1004; // anda boleh memberi peluang pada nama dengan contoh Relay4 const word Relay1bord2 = 0x1101; // anda boleh berpeluang memberikan nama dengan contoh Relay5 const w ord Relay2bord2 = 0x1102; // anda boleh mendapatkan nama dengan contoh Relay6 const word Relay3bord2 = 0x1103; // anda boleh mendapatkan nama dengan contoh Relay7 const word Relay4bord2 = 0x1104; // anda boleh mendapatkan nama dengan contoh Relay8 const word Relay1bord3 = 0x1201; // anda boleh mendapatkan nama dengan contoh Relay9 const word Relay2bord4 = 0x1302; // anda boleh memberikan nama dengan contoh penyediaan kekosongan Relay14 () {Serial.begin (115200); // memulakan siri untuk debug (9600 untuk UNO) Wire.begin (D1, D2); // sertai bas i2c dengan SDA = D1 dan SCL = D2 dari NodeMCU tidak memerlukan UNO} gelung kosong () {// untuk menukar geganti 4 pada PCB 2 pada RelayActie (Relay4bord2, PutOn); kelewatan (1000); // untuk menukar relay 4 pada PCB 2 dari RelayActie (Relay4bord2, PutOff); kelewatan (1000); } batal RelayActie (kata Relay, byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (Relay)); Wire.write (OnOrOff); Wire.endTransmission (); }

Disyorkan: