Kazalo:

Rele I2C Met Arduino IDE: 5 korakov
Rele I2C Met Arduino IDE: 5 korakov

Video: Rele I2C Met Arduino IDE: 5 korakov

Video: Rele I2C Met Arduino IDE: 5 korakov
Video: Как сделать ПЛК LDmicro Arduino с ЖК-дисплеем I2C 2024, Julij
Anonim
Rele I2C z Arduino IDE
Rele I2C z Arduino IDE

Naročil sem lepo relejsko ploščo, vendar ni bilo navodil za ArduinoIDE, samo Raspberry Pi e.o. Ugotovil sem, kako ga uporabljati z Arduinom in ga želim deliti, da prihranite ta čas.

Izvirni primer RaspberryPi:

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

Lepo je, da lahko zložite do 4 plošče. Tako lahko uporabite max. 4 x 4 = 16 relejev na enem vodilu I2C.

Obstaja tudi nekaj slabosti:

  • majhni priključki, ne ustrezajo žici 1 mm2
  • ožičenja spodnjih priključkov ne morete spremeniti, če so zloženi skupaj

Ampak še vedno priročne deske.

Korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Na slikah lahko vidite ožičenje.

52Pi potrebuje oba 5V (za releje) in 3.3V (čip I2C).

Torej je potrebnih 5 žic:

  • GND v GND
  • 5 V do 5 V
  • 3,3 V do 3,3 V
  • SLA na SLA
  • SCL v SCL

Če uporabljate Arduino UNO ali drugo 5 V napetost največ 3,6 V iz krmilnika I2C! Uporabite upore ali pa znižajte 5 V iz kode Arduino PIN!

2. korak: Primer preproste kode:

/* Primer Arduino IDE (ESP) za relaisboard I2C.

* Avtor Laurens Korste www.boktorrobotica.nl * brezplačna uporaba. */ #include // za komunikacijo I2C void setup () {// to pravilo ne velja za UNO ali plošče z namenskimi I2C zatiči Wire.begin (D1, D2); // pridruži se vodilu i2c s SDA = D1 in SCL = D2 za NodeMCU} void loop () {Wire.beginTransmission (0x10);/ * začnite oddajati na naslov I2C 10 (spremeniti tudi na 11, 12 ali 13) */ Wire.pisati (0x01); / * izbirni rele 1 (od 4) na krovu 10 (tudi 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* nastavite rele 1 na krovu 10 na ON. vse številke> 0 bodo tako */ Wire.endTransmission (); / * ustaviti oddajanje */ zakasnitev (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * nastavite rele 1 na krovu 10 na OFF */ Wire.endTransmission (); / * ustaviti oddajanje */ zakasnitev (3000); }

Korak 3: Koda preskusa štirih relejev

/* skica Laurens Korste za Arduino (ESP / NodeMCU)

* Vendar bodo delovale tudi druge plošče * www.boktorrobotica.nl * V tem ključu se bodo aktivirali 4 releji in deaktivirali */ #include // za komunikacijo I2C void setup () {Serial.begin (115200); // začnite serijsko za debug (9600 za UNO) Wire.begin (D1, D2); // pridruži se vodilu i2c s SDA = D1 in SCL = D2 NodeMCU, ni potrebe po UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // začnite z naslovom naprave Wire.write (i); // izbira releja Wire.write (0xFF); // pošljemo kodo "on" FF (vsako število od 01 do FF bo dovolj) Wire.endTransmission (); // preneha pošiljati Serial.write (i); Serial.println ("aan"); zamuda (1000); Wire.beginTransmission (0x10); // začnite z naslovom naprave Wire.write (i); Wire.write (0x00); // Pošljite kodo "off" Wire.endTransmission (); // preneha pošiljati Serial.write (i); Serial.println ("uit"); zamuda (1000); }}

4. korak: Moj projekt

Moj projekt
Moj projekt
Moj projekt
Moj projekt

Napisal sem kodo za upravljanje s tremi polkni. To lahko storite s stikali, pa tudi z aplikacijo BLYNK, glejte sliko.

  • En kratek pritisk bo začel premikati en zaklop (ali ga ustaviti, ko se premika).
  • En dolg pritisk in vse tri rolete se odprejo (ali zaprejo ali ustavijo).
  • Dvojni pritisk: polkna gredo v položaj "luknje".

Kot je razvidno iz slike, sem vgradil tudi senzor temperature in svetlobe.

Zdaj vse na dobri osnovni plošči in lepo v škatli.

5. korak: Pokličite rele z enim ukazom

To je uporabno, če potrebujete samo en ukaz za vklop ali izklop releja. Spodaj je funkcija, ki to lahko stori (z nizkobajtnim in visokim bajtom).

/ * skica Laurensa Korsteja za Arduino (ESP/NodeMCU) z relejno ploščo I2C * Toda tudi druge plošče bodo naredile * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Na tej skici se bo rele aktiviral z enim klicem; * // #include // za komunikacijo I2C // Deklaracija relejev. 4 PCB-jev na PCB Možni so 4 releji. Na tej skici sta združeni samo dve PCB // PCB in releji, tako da ju je mogoče poklicati z enim ukazom const byte PutOn = 0xFF; // ukaz za vklop const byte PutOff = 0x00; // ukaz za izklop const word Relay1bord1 = 0x1001; // imena lahko naključno izgovorite z besedo Relay1 const Relay2bord1 = 0x1002; // imena lahko izveste z zgledom Relay2 const word Relay3bord1 = 0x1003; // imena lahko naključno izgovorite z besedo const word3 Relay4bord1 = 0x1004; // imena lahko naključno izgovorite z besedo Relay4 const word Relay1bord2 = 0x1101; // imena lahko izveste po primeru Relay5 const w ord Relay2bord2 = 0x1102; // imena lahko naključno preslikamo na primer Relay6 const word Relay3bord2 = 0x1103; // imena lahko naključno preslikate na primer Relay7 const word Relay4bord2 = 0x1104; // imena lahko naključno preslikamo na primer Relay8 const word Relay1bord3 = 0x1201; // imena lahko naključno preslikamo na primer Relay9 const word Relay2bord4 = 0x1302; // imena lahko naključno preslikate na primer Relay14 void setup () {Serial.begin (115200); // začnite serijsko za debug (9600 za UNO) Wire.begin (D1, D2); // pridruži se vodilu i2c s SDA = D1 in SCL = D2 NodeMCU, ni potrebe po UNO} void loop () {// za preklop releja 4 na PCB 2 na RelayActie (Relay4bord2, PutOn); zamuda (1000); // za izklop releja 4 na tiskanem vezju 2 RelayActie (Relay4bord2, PutOff); zamuda (1000); } void RelayActie (besedni rele, bajt OnOrOff) {Wire.beginTransmission (highByte (rele)); Wire.write (lowByte (rele)); Wire.write (OnOrOff); Wire.endTransmission (); }

Priporočena: