Sommario:
- Passaggio 1: cablaggio
- Passaggio 2: esempio di codice semplice:
- Passaggio 3: codice di test a quattro relè
- Passaggio 4: il mio progetto
- Passaggio 5: chiamare un relè con un comando
Video: Relè I2C con Arduino IDE: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Ordino una bella relayboard ma non c'erano istruzioni ArduinoIDE, solo Raspberry Pi e.o. Ho scoperto come usarlo con Arduino e voglio condividerlo in modo da poter risparmiare quel tempo.
Esempio originale RaspberryPi:
wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099
La cosa bella è che puoi impilare fino a 4 tavole. Quindi puoi usare max. 4 x 4 = 16 relè su un bus I2C.
Ci sono anche alcuni contro:
- piccole terminazioni, non si adattano a un cavo da 1 mm2
- non è possibile modificare il cablaggio dei connettori inferiori quando sono impilati insieme
Ma ancora a portata di mano di bordo.
Passaggio 1: cablaggio
Nelle foto potete vedere il cablaggio.
Il 52Pi necessita sia di 5V (per i relè) che di 3,3V (chip I2C).
Quindi sono necessari 5 fili:
- GND a GND
- da 5 V a 5 V
- da 3,3 V a 3,3 V
- SLA a SLA
- da SCL a SCL
Se usi un Arduino UNO o altri 5 V, fai attenzione ai 3, 6 V max dal controller I2C! Usa resistori o altro per abbassare i 5 V dai PIN di Arduino!
Passaggio 2: esempio di codice semplice:
/* Esempio Arduino IDE (ESP) per relaisboard I2C.
* Di Laurens Korste www.boktorrobotica.nl * uso gratuito. */ #include // per la comunicazione I2C void setup() { // questa regola non per UNO o schede con pin I2C dedicati Wire.begin(D1, D2); // unisce il bus i2c con SDA=D1 e SCL=D2 per NodeMCU } void loop() { Wire.beginTransmission(0x10);/* inizia la trasmissione all'indirizzo I2C 10 (da cambiare anche a 11, 12 o 13) */ Wire.write(0x01); /* scelta relè 1 (su 4) a bordo 10 (anche 0x02, 0x03, 0x04) */ Wire.write(0xFF); /* imposta il relè 1 sulla scheda 10 su ON. tutti i numeri > 0 lo faranno */ Wire.endTransmission(); /* interrompe la trasmissione */ delay(3000); Wire.beginTransmission(0x10); /* */ Wire.write(0x01); Wire.write(0x00); /* imposta il relè 1 sulla scheda 10 su OFF */ Wire.endTransmission(); /* interrompe la trasmissione */ delay(3000); }
Passaggio 3: codice di test a quattro relè
/* schizzo di Laurens Korste per Arduino (ESP / NodeMCU)
* Ma andranno bene anche altre schede * www.boktorrobotica.nl * In questo skeych i 4 relè verranno attivati e disattivati */ #include // per la comunicazione I2C void setup() { Serial.begin(115200); // inizia seriale per il debug (9600 per UNO) Wire.begin(D1, D2); // collega il bus i2c con SDA=D1 e SCL=D2 di NodeMCU senza bisogno di UNO } void loop() { for (int i=1; i<=4; i++){ Wire.beginTransmission(0x10); // inizia con l'indirizzo del dispositivo Wire.write(i); // scegli il relais Wire.write(0xFF); // invia il codice "on" FF (ogni conteggio da 01 a FF va bene) Wire.endTransmission(); // interrompe la trasmissione Serial.write(i); Serial.println(" aan "); ritardo(1000); Wire.beginTransmission(0x10); // inizia con l'indirizzo del dispositivo Wire.write(i); Wire.write(0x00); // Invia il codice "off" Wire.endTransmission(); // interrompe la trasmissione Serial.write(i); Serial.println(" uit "); ritardo(1000); } }
Passaggio 4: il mio progetto
Ho scritto un codice per azionare le mie 3 tapparelle. Questo può essere fatto con gli interruttori ma anche con l'app BLYNK, vedi immagine.
- Una breve pressione comincerà a muovere una tapparella (o la fermerà quando è in movimento).
- Una pressione lunga e tutte e tre le tapparelle si aprono (o si chiudono o si fermano).
- Doppia pressione: le ante vanno in posizione "fori".
Come si può vedere in foto, ho integrato anche un sensore di temperatura e luce.
Ora tutto su una buona base PCB e ordinatamente in una scatola.
Passaggio 5: chiamare un relè con un comando
È utile se è necessario un solo comando per attivare o disattivare un relè. Di seguito è riportata una funzione che può farlo (con lowbyte e highbyte).
/* sketch di Laurens Korste per Arduino (ESP / NodeMCU) con relaysboard I2C * Ma anche altre schede lo faranno * href= https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099; www.boktorrobotica.nl * In questo sketch il relè sarà attivato da una chiamata; *// #include // per comunicazione I2C // Dichiarazione relè 4 PCB per PCB 4 relè possibili In questo sketch solo due PCB // PCB e relè sono uniti in modo che possano essere chiamati con un solo comando const byte PutOn=0xFF; //comando per accendere const byte PutOff=0x00; //comando per spegnere const word Relay1bord1=0x1001; //puoi cambiare i nomi per esempio Relay1 const word Relay2bord1=0x1002; //puoi cambiare i nomi per esempio Relay2 const word Relay3bord1=0x1003; //puoi cambiare i nomi per esempio Relay3 const word Relay4bord1=0x1004; //puoi cambiare i nomi con l'esempio Relay4 const word Relay1bord2=0x1101; //puoi cambiare i nomi con l'esempio Relay5 const w ord Relè2bord2=0x1102; //si possono cambiare i nomi per esempio Relay6 const word Relay3bord2=0x1103; //si possono cambiare i nomi con l'esempio Relay7 const word Relay4bord2=0x1104; //si possono cambiare i nomi per esempio Relay8 const word Relay1bord3=0x1201; //si possono cambiare i nomi con l'esempio Relay9 const word Relay2bord4=0x1302; //puoi cambiare i nomi con l'esempio Relay14 void setup() { Serial.begin(115200); // inizia seriale per debug (9600 per UNO) Wire.begin(D1, D2); // collega il bus i2c con SDA=D1 e SCL=D2 di NodeMCU senza bisogno di UNO } void loop() { // per commutare il relè 4 su PCB 2 su RelayActie(Relay4bord2, PutOn); ritardo(1000); // per spegnere il relè 4 sulla PCB 2 RelayActie(Relay4bord2, PutOff); ritardo(1000); } void RelayActie(word Relay, byte OnOrOff){ Wire.beginTransmission (highByte(Relay)); Wire.write (lowByte(Relay)); Wire.write (OnOrOff); Wire.endTransmission(); }
Consigliato:
Interruttore relè RFID Arduino Uno, con display I2C: 4 passaggi
RFID Arduino Uno Relay Switch, con display I2C: Ciao, questo è il mio primo progetto, mi chiamo Oskar e ho 13 anni. Questo progetto funziona con un display I2C, non uno normale
Interruttore luci WiFi per automazione domestica con ESP-01 e modulo relè con pulsante: 7 passaggi
Interruttore luci WiFi domotica con ESP-01 e modulo relè con pulsante: quindi nelle istruzioni precedenti abbiamo programmato un ESP-01 con Tasmota utilizzando un lampeggiatore ESP e collegato l'ESP-01 alle nostre reti wifi. Ora possiamo iniziare a programmarlo per accendere/spegnere un interruttore della luce utilizzando il WiFi o il pulsante. Per i lavori elet
Applicazione di MCP-23008 Utilizzo dell'interfaccia relè (I2C):: 6 passaggi
Applicazione di MCP-23008 utilizzando l'interfaccia relè (I2C):: HelloGood Greetings..!! I (Somanshu Choudhary) per conto delle imprese tecnologiche Dcube controlleranno i relè tramite il protocollo I2C utilizzando Arduino nano e MCP23008
Iniziare con Esp 8266 Esp-01 con Arduino IDE - Installazione di schede Esp in Arduino Ide e programmazione di Esp: 4 passaggi
Iniziare con Esp 8266 Esp-01 con Arduino IDE | Installazione di schede Esp in Arduino Ide e programmazione Esp: in questo tutorial impareremo come installare le schede esp8266 in Arduino IDE e come programmare esp-01 e caricare il codice in esso. Poiché le schede esp sono così popolari, ho pensato di raddrizzare un istruibile per questo e la maggior parte delle persone affrontano problemi
IOT123 - MATTONE RELÈ I2C 2CH: 5 passaggi (con immagini)
IOT123 - I2C 2CH RELAY BRICK: I BRICK IOT123 sono unità modulari fai-da-te che possono essere combinate con altri BRICK IOT123, per aggiungere funzionalità a un nodo o indossabili. Si basano su protoboard quadrati in pollici, a doppia faccia con fori passanti interconnessi. Un certo numero di questi BRICK