Taula de continguts:

I2C Relay Met Arduino IDE: 5 passos
I2C Relay Met Arduino IDE: 5 passos

Vídeo: I2C Relay Met Arduino IDE: 5 passos

Vídeo: I2C Relay Met Arduino IDE: 5 passos
Vídeo: I2C with Arduino and Raspberry Pi - Two Methods 2024, De novembre
Anonim
I2C Relay Met Arduino IDE
I2C Relay Met Arduino IDE

Demano un bon relé, però no hi havia instruccions ArduinoIDE, només Raspberry Pi e.o. Esbrino com fer-lo servir amb Arduino i vull compartir-lo perquè pugueu estalviar temps.

Exemple original de RaspberryPi:

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

Una cosa interessant és que podeu apilar fins a 4 taules. Per tant, podeu utilitzar el màxim 4 x 4 = 16 relés en un bus I2C.

També hi ha alguns inconvenients:

  • petites termines, no caben filferro d'1 mm2
  • no podeu canviar el cablejat dels connectors inferiors quan estan apilats

Però encara és útil la junta.

Pas 1: cablejat

Cablatge
Cablatge
Cablatge
Cablatge
Cablatge
Cablatge

A les imatges es pot veure el cablejat.

El 52Pi necessita 5V (per a relés) i 3,3V (xip I2C).

Per tant, es necessiten 5 cables:

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

Si utilitzeu un Arduino UNO o un altre de 5 V, consulteu el màxim de 3, 6 V del controlador I2C. Utilitzeu resistències o bé per baixar els 5 V dels PIN d'Arduino.

Pas 2: Exemple de codi simple:

/ * Exemple Arduino IDE (ESP) per a placa de relé I2C.

* Per Laurens Korste www.boktorrobotica.nl * d'ús gratuït. * / #include // for I2C communication void setup () {// aquesta regla no és per a UNO ni per a plaques amb pins I2C dedicats Wire.begin (D1, D2); // uniu el bus i2c amb SDA = D1 i SCL = D2 per a NodeMCU} bucle buit () {Wire.beginTransmission (0x10); / * comenceu a transmetre a l’adreça I2C 10 (per canviar també a 11, 12 o 13) * / Wire.write (0x01); / * choice relais 1 (de 4) al tauler 10 (també 0x02, 0x03, 0x04) * / Wire.write (0xFF); / * Estableix els relais 1 del tauler 10 a ON. tots els números> 0 ho faran * / Wire.endTransmission (); / * deixar de transmetre * / delay (3000); Wire.beginTransmission (0x10); / * * / Wire.write (0x01); Wire.write (0x00); / * estableix els relais 1 al tauler 10 com a OFF * / Wire.endTransmission (); / * deixar de transmetre * / delay (3000); }

Pas 3: Codi de prova de quatre relleus

/ * esbós de Laurens Korste per Arduino (ESP / NodeMCU)

* Però altres taulers també ho faran * www.boktorrobotica.nl * En aquest manual tots els 4 relés s’activaran desactivats * / #include // per a la configuració del buit de comunicació I2C () {Serial.begin (115200); // comença la sèrie per a la depuració (9600 per a UNO) Wire.begin (D1, D2); // uniu el bus i2c amb SDA = D1 i SCL = D2 de NodeMCU sense necessitat de UNO} bucle buit () {per (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // Comenceu amb l'adreça del dispositiu Wire.write (i); // tria el relé Wire.write (0xFF); // envieu el codi "on" FF (cada recompte de 01 a FF farà) Wire.endTransmission (); // deixar de transmetre Serial.write (i); Serial.println ("aan"); retard (1000); Wire.beginTransmission (0x10); // Comenceu amb l'adreça del dispositiu Wire.write (i); Wire.write (0x00); // Envieu el codi "off" Wire.endTransmission (); // deixar de transmetre Serial.write (i); Serial.println ("uit"); retard (1000); }}

Pas 4: El meu projecte

El meu projecte
El meu projecte
El meu projecte
El meu projecte

He escrit un codi per fer funcionar les 3 persianes. Això es pot fer amb interruptors, però també amb l’aplicació BLYNK, Veure imatge.

  • Si premeu breument, es començarà a moure un obturador (o s’aturarà quan es mogui).
  • Una pulsació llarga i les tres persianes obertes (o tancades o aturades).
  • Doble pressió: les persianes van a la posició de "forats".

Com es pot veure a la imatge, també he integrat un sensor de temperatura i llum.

Ara tot en una bona placa base i perfectament en una caixa.

Pas 5: Truqueu a un relé amb una sola ordre

És útil si només necessiteu una ordre per activar o desactivar un relé. A continuació es mostra una funció que pot fer-ho (amb lowbyte i highbyte).

/ * esbós de Laurens Korste per Arduino (ESP / NodeMCU) amb placa de relés I2C * Però altres taules també ho faran * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com / index.php / DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * En aquest esbós, el relé s’activarà mitjançant una trucada; * // #include // per a comunicació I2C // Declaració de relés. 4 relés possibles. En aquest esbós només es combinen dos PCB // PCB i relés de manera que es poden cridar amb un ordre const byte PutOn = 0xFF; // ordre per activar const byte PutOff = 0x00; // comand per apagar paraula const Relay1bord1 = 0x1001; // podeu provar els noms per exemple Relay1 const paraula Relay2bord1 = 0x1002; // podeu provar els noms per exemple Relay2 paraula const Relay3bord1 = 0x1003; // podeu provar els noms per exemple Relay3 const paraula Relay4bord1 = 0x1004; // podeu provar els noms per exemple Relay4 const word Relay1bord2 = 0x1101; // podeu provar els noms per exemple Relay5 const w ord Relay2bord2 = 0x1102; // podeu provar els noms amb l'exemple Relay6 const paraula Relay3bord2 = 0x1103; // podeu provar els noms amb l'exemple Relay7 const paraula Relay4bord2 = 0x1104; // podeu provar els noms amb l'exemple Relay8 const paraula Relay1bord3 = 0x1201; // podeu provar els noms amb l'exemple Relay9 const paraula Relay2bord4 = 0x1302; // podeu accedir als noms amb l'exemple Relay14 void setup () {Serial.begin (115200); // comença la sèrie per a la depuració (9600 per a UNO) Wire.begin (D1, D2); // uniu el bus i2c amb SDA = D1 i SCL = D2 de NodeMCU sense necessitat de UNO} bucle buit () {// per canviar el relé 4 del PCB 2 a RelayActie (Relay4bord2, PutOn); retard (1000); // per canviar el relé 4 del PCB 2 desactivat de RelayActie (Relay4bord2, PutOff); retard (1000); } void RelayActie (paraula Relay, byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relé)); Wire.write (OnOrOff); Wire.endTransmission (); }

Recomanat: