Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
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
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
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 (); }