Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
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
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
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 (); }