Sadržaj:

I2C relej s Arduinom IDE: 5 koraka
I2C relej s Arduinom IDE: 5 koraka

Video: I2C relej s Arduinom IDE: 5 koraka

Video: I2C relej s Arduinom IDE: 5 koraka
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Srpanj
Anonim
I2C relej s Arduino IDE -om
I2C relej s Arduino IDE -om

Naručio sam lijepu relejnu ploču, ali nije bilo upute za ArduinoIDE, samo Raspberry Pi e.o. Saznao sam kako ga koristiti s Arduinom i želim ga podijeliti kako biste uštedjeli vrijeme.

Izvorni primjer RaspberryPi:

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

Lijepo je to što možete složiti do 4 ploče. Dakle, možete koristiti max. 4 x 4 = 16 releja na jednoj I2C sabirnici.

Postoje i neki nedostaci:

  • mali terminali, ne odgovaraju žici od 1 mm2
  • ne možete promijeniti ožičenje donjih konektora kada su složeni zajedno

Ali još uvijek pri ruci ploče.

Korak 1: Ožičenje

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

Na slikama možete vidjeti ožičenje.

52Pi treba oba 5V (za releje) i 3.3V (I2C čip).

Dakle, potrebno je 5 žica:

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

Ako koristite Arduino UNO ili drugi 5 V uređaj od max 3, 6 V iz I2C kontrolera! Upotrijebite otpornike ili smanjite 5 V s Arduino PIN -a!

Korak 2: Primjer jednostavnog koda:

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

* Napisao Laurens Korste www.boktorrobotica.nl * besplatno korištenje. */ #include // za I2C komunikaciju void setup () {// ovo pravilo nije za UNO ili ploče s namjenskim I2C pinovima Wire.begin (D1, D2); // pridružujemo se i2c sabirnici sa SDA = D1 i SCL = D2 za NodeMCU} void loop () {Wire.beginTransmission (0x10);/ * započnite prijenos na I2C adresu 10 (za promjenu također na 11, 12 ili 13) */ Wire.pisati (0x01); / * izbor releja 1 (od 4) na ploči 10 (također 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* postavite relej 1 na ploči 10 na ON. svi brojevi> 0 će to učiniti */ Wire.endTransmission (); / * prestati slati */ odgoda (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * postavite relej 1 na ploči 10 na OFF */ Wire.endTransmission (); / * prestati slati */ odgoda (3000); }

Korak 3: Ispitni kôd s četiri releja

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

* Ali i druge ploče će to učiniti * www.boktorrobotica.nl * U ovom će se ključu aktivirati 4 releja i deaktivirati */ #include // za I2C komunikaciju void setup () {Serial.begin (115200); // započinje serijsko za ispravljanje pogrešaka (9600 za UNO) Wire.begin (D1, D2); // pridružujemo se i2c sabirnici sa SDA = D1 i SCL = D2 NodeMCU -a nema potrebe za UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // započinjemo s adresom uređaja Wire.write (i); // odabir releja Wire.write (0xFF); // šalje "on" kod FF (svaki broj od 01 do FF će biti dovoljan) Wire.endTransmission (); // prestanak prijenosa Serial.write (i); Serial.println ("aan"); kašnjenje (1000); Wire.beginTransmission (0x10); // započinjemo s adresom uređaja Wire.write (i); Wire.write (0x00); // Pošaljite "off" kod Wire.endTransmission (); // prestanak prijenosa Serial.write (i); Serial.println ("uit"); kašnjenje (1000); }}

Korak 4: Moj projekt

Moj projekt
Moj projekt
Moj projekt
Moj projekt

Napisao sam kôd za rad sa 3 kapke. To se može učiniti pomoću prekidača, ali i pomoću aplikacije BLYNK, pogledajte sliku.

  • Jedan kratki pritisak počet će pomicati jedan okidač (ili ga zaustaviti dok se pomiče).
  • Jedan dugi pritisak i sve tri kapke se otvaraju (ili zatvaraju ili zaustavljaju).
  • Dvostruki pritisak: kapci idu u položaj "rupe".

Kao što se može vidjeti na slici, integrirao sam i senzor temperature i svjetla.

Sada sve na dobroj osnovnoj pločici i uredno u kutiji.

Korak 5: Pozovite relej s jednom naredbom

Korisno je ako vam je za aktiviranje ili deaktiviranje releja potrebna samo jedna naredba. Ispod je funkcija koja to može učiniti (s niskobajtnim i visokim bajtom).

/ * skica Laurensa Korstea za Arduino (ESP/NodeMCU) s I2C relejnom pločom * No i druge ploče će to učiniti * 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 ovoj skici relej će se aktivirati jednim pozivom; * // #include // za I2C komunikaciju // Releji deklarirani. 4 PCB-a po PCB-u Moguća su 4 releja. Na ovoj skici su spojena samo dva PCB -a // PCB i releji tako da se mogu pozvati s jednom naredbom const byte PutOn = 0xFF; // naredba za uključivanje const bajta PutOff = 0x00; // naredba za isključivanje const word Relay1bord1 = 0x1001; // imena možete izvesti slučajnim primjerom Relay1 const word Relay2bord1 = 0x1002; // imena možete izvesti po primjeru Relay2 const word Relay3bord1 = 0x1003; // imena možete izvesti slučajnim primjerom Relay3 const word Relay4bord1 = 0x1004; // imena možete izvesti slučajnim primjerom Relay4 const word Relay1bord2 = 0x1101; // imena možete izvesti slučajnim primjerom Relay5 const w ord Relej2bord2 = 0x1102; // imena možete izvesti slučajnim primjerom Relay6 const word Relay3bord2 = 0x1103; // imena možete izvesti slučajnim primjerom Relay7 const word Relay4bord2 = 0x1104; // imena možete izvesti slučajnim primjerom Relay8 const word Relay1bord3 = 0x1201; // imena možete izvesti slučajnim primjerom Relay9 const word Relay2bord4 = 0x1302; // imena možete izvesti slučajnim primjerom Relay14 void setup () {Serial.begin (115200); // započinje serijsko za ispravljanje pogrešaka (9600 za UNO) Wire.begin (D1, D2); // pridružujemo se i2c sabirnici sa SDA = D1 i SCL = D2 NodeMCU -a nema potrebe za UNO} void loop () {// za prebacivanje releja 4 na PCB -u 2 na RelayActie (Relay4bord2, PutOn); kašnjenje (1000); // za isključivanje releja 4 na PCB -u 2 RelayActie (Relay4bord2, PutOff); kašnjenje (1000); } void RelayActie (Riječ Relay, bajt OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relej)); Wire.write (OnOrOff); Wire.endTransmission (); }

Preporučeni: