Sisällysluettelo:

I2C -rele ja Arduino IDE: 5 vaihetta
I2C -rele ja Arduino IDE: 5 vaihetta

Video: I2C -rele ja Arduino IDE: 5 vaihetta

Video: I2C -rele ja Arduino IDE: 5 vaihetta
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Heinäkuu
Anonim
I2C -rele ja Arduino IDE
I2C -rele ja Arduino IDE

Tilaan mukavan relayboardin, mutta ArduinoIDE -ohjetta ei ollut, vain Raspberry Pi e.o. Opin käyttämään sitä Arduinon kanssa ja haluan jakaa sen, jotta voit säästää aikaa.

Alkuperäinen RaspberryPi -esimerkki:

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

Hienoa on, että voit pinota jopa 4 lautaa. Voit siis käyttää max. 4 x 4 = 16 releä yhdellä I2C -väylällä.

On myös joitain haittoja:

  • pienet terminaalit, eivät sovi 1 mm2: n johtoon
  • et voi muuttaa alaliittimien johtoja, kun ne on pinottu yhteen

Mutta silti kätevät levyt.

Vaihe 1: Johdotus

Johdotus
Johdotus
Johdotus
Johdotus
Johdotus
Johdotus

Kuvissa näkyy lanka.

52Pi tarvitsee molemmat 5 V (releille) ja 3,3 V (I2C -siru).

Tarvitaan siis 5 johtoa:

  • GND - GND
  • 5 V - 5 V
  • 3,3 V - 3,3 V
  • SLA - SLA
  • SCL - SCL

Jos käytät Arduino UNO: ta tai muuta 5 V: n jännitettä, varaa maksimissaan 3, 6 V I2C -ohjaimesta! Käytä vastuksia tai alenna 5 V: n jännite Arduinon PIN -koodeista!

Vaihe 2: Yksinkertainen koodi Esimerkki:

/* Arduino IDE (ESP) -esimerkki I2C -relaisboardille.

* Laurens Korste www.boktorrobotica.nl * vapaasti käytettävissä. */ #include // I2C -tiedonsiirron void setup () {// tämä sääntö ei koske UNO: ta tai levyjä, joissa on omat I2C -nastat Wire.begin (D1, D2); // liity i2c -väylään SDA = D1 ja SCL = D2 NodeMCU: lle} tyhjä silmukka () {Wire.beginTransmission (0x10);/ * aloita lähetys I2C -osoitteeseen 10 (muuttaa myös 11, 12 tai 13) */ Wire. kirjoittaa (0x01); / * valintarele 1 (neljästä) kortilla 10 (myös 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* aseta relais 1 aluksella 10 asentoon ON. kaikki numerot> 0 tekevät niin */ Wire.endTransmission (); / * lopeta lähetys */ viive (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * aseta relais 1 aluksella 10 asentoon OFF */ Wire.endTransmission (); / * lopeta lähetys */ viive (3000); }

Vaihe 3: Neljän releen testauskoodi

/* luonnos Laurens Korste Arduinolle (ESP / NodeMCU)

* Mutta muut levyt tekevät myös * www.boktorrobotica.nl * Tässä ketjussa 4 relettä aktivoidaan deaktivoituina */ #include // I2C -tiedonsiirron mitätöintiä varten () {Serial.begin (115200); // aloita sarja debugia varten (9600 UNO: lle) Wire.begin (D1, D2); // liittyä i2c -väylään SDA = D1 ja SCL = D2 NodeMCU: ssa ei tarvita UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // aloita laitteen osoitteella Wire.write (i); // valitse relais Wire.write (0xFF); // lähetä "on" -koodi FF (jokainen lasku 01: stä FF: ään) Wire.endTransmission (); // lopeta Serial.write (i); Serial.println ("aan"); viive (1000); Wire.beginTransmission (0x10); // aloita laitteen osoitteella Wire.write (i); Wire.write (0x00); // Lähetä "off" -koodi Wire.endTransmission (); // lopeta Serial.write (i); Serial.println ("uit"); viive (1000); }}

Vaihe 4: Oma projekti

Minun projektini
Minun projektini
Minun projektini
Minun projektini

Olen kirjoittanut koodin 3 ikkunaluukun käyttämiseen. Tämä voidaan tehdä kytkimillä mutta myös BLYNK -sovelluksella, katso kuva.

  • Yksi lyhyt painallus siirtää yhden sulkimen (tai pysäyttää sen, kun se liikkuu).
  • Yksi pitkä painallus ja kaikki kolme ikkunaluukkua avautuvat (tai sulkeutuvat tai pysähtyvät).
  • Kaksinkertainen paine: ikkunaluukut menevät "reikien" asentoon.

Kuten kuvasta näkyy, integroin myös lämpötila- ja valoanturin.

Nyt kaikki hyvällä peruspiirilevyllä ja siististi laatikossa.

Vaihe 5: Soita rele yhdellä komennolla

Siitä on hyötyä, jos tarvitset vain yhden komennon releen aktivoimiseksi tai deaktivoimiseksi. Alla on toiminto, joka voi tehdä tämän (matalalla ja suurella tavulla).

/ * luonnos Laurens Korste Arduinolle (ESP/NodeMCU) I2C -relelautalla.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Tässä luonnoksessa rele aktivoidaan yhdellä soitolla; * // #include // I2C-viestinnälle // Releilmoitus. 4 PCB: tä PCB: lle 4 relettä mahdollisia. Tässä luonnoksessa vain kaksi PCB // PCB: tä ja releet yhdistetään niin, että ne voidaan kutsua yhdellä komennolla const tavu PutOn = 0xFF; // komento kytkeäksesi sisään konstitavu PutOff = 0x00; // komento sammuttaaksesi const sana Relay1bord1 = 0x1001; // voit nimetä nimet esimerkin avulla Relay1 const sana Relay2bord1 = 0x1002; // voit asettaa nimet esimerkin kautta Relay2 const sana Relay3bord1 = 0x1003; // voit nimetä nimet esimerkin Relay3 const sanalla Relay4bord1 = 0x1004; // voit nimetä nimet esimerkillä Relay4 const -sana Relay1bord2 = 0x1101; // voit nimetä nimet esimerkin Relay5 const w avulla ord Relay2bord2 = 0x1102; // voit nimetä nimet esimerkiksi Relay6 const -sana Relay3bord2 = 0x1103; // voit nimetä nimet esimerkiksi Relay7 const -sana Relay4bord2 = 0x1104; // voit nimetä nimet esimerkiksi Relay8 const -sana Relay1bord3 = 0x1201; // voit nimetä nimet esimerkillä Relay9 const -sana Relay2bord4 = 0x1302; // voit nimetä nimet esimerkiksi Relay14 void setup () {Serial.begin (115200); // aloita sarja debugia varten (9600 UNO: lle) Wire.begin (D1, D2); // liittyä i2c -väylään SDA = D1 ja SCL = D2 NodeMCU: ssa ei tarvita UNO} void loop () {// vaihtaa rele 4 PCB 2: ssa RelayActie -laitteessa (Relay4bord2, PutOn); viive (1000); // kytkeä rele 4 piirilevylle 2 pois päältä RelayActie (Relay4bord2, PutOff); viive (1000); } void RelayActie (sana Relay, tavu OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (rele)); Wire.write (OnOrOff); Wire.endTransmission (); }

Suositeltava: