Obsah:

I2C Relay Met Arduino IDE: 5 Steps
I2C Relay Met Arduino IDE: 5 Steps

Video: I2C Relay Met Arduino IDE: 5 Steps

Video: I2C Relay Met Arduino IDE: 5 Steps
Video: I2C with Arduino and Raspberry Pi - Two Methods 2024, Červenec
Anonim
I2C Relay Met Arduino IDE
I2C Relay Met Arduino IDE

Objednávám pěkný reléboard, ale žádná instrukce ArduinoIDE nebyla, jen Raspberry Pi e.o. Zjistil jsem, jak jej používat s Arduinem a chci ho sdílet, abyste mohli ušetřit čas.

Originální příklad RaspberryPi:

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

Dobrá věc je, že můžete skládat až 4 desky. Můžete tedy použít max. 4 x 4 = 16 relé na jedné sběrnici I2C.

Existují také některé nevýhody:

  • malé koncovky, nevejdou se na drát 1 mm2
  • nemůžete zapojit spodní konektory, pokud jsou naskládány dohromady

Ale přesto šikovné desky.

Krok 1: Zapojení

Wirering
Wirering
Wirering
Wirering
Wirering
Wirering

Na obrázcích můžete vidět blednutí.

52Pi potřebuje 5V (pro relé) a 3,3V (čip I2C).

Je tedy zapotřebí 5 vodičů:

  • GND až GND
  • 5 V až 5 V.
  • 3,3 V až 3,3 V
  • SLA na SLA
  • SCL na SCL

Používáte -li Arduino UNO nebo jiné 5 V zařízení s maximem 3, 6 V z ovladače I2C! Použijte odpory nebo jinak snižte 5 V z PIN Arduino!

Krok 2: Příklad jednoduchého kódu:

/* Příklad Arduino IDE (ESP) pro relaisboard I2C.

* Od Laurens Korste www.boktorrobotica.nl * zdarma k použití. */ #include // pro I2C komunikaci void setup () {// toto pravidlo neplatí pro UNO nebo desky s vyhrazenými I2C piny Wire.begin (D1, D2); // připojení sběrnice i2c s SDA = D1 a SCL = D2 pro NodeMCU} prázdná smyčka () {Wire.beginTransmission (0x10);/ * zahájení přenosu na adresu I2C 10 (pro změnu také na 11, 12 nebo 13) */ Wire.write (0x01); / * volba relé 1 (ze 4) na desce 10 (také 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* nastavit relé 1 na desce 10 na ON. všechna čísla> 0 tak učiní */ Wire.endTransmission (); / * zastavit vysílání */ zpoždění (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * nastavit relé 1 na desce 10 na VYPNUTO */ Wire.endTransmission (); / * zastavit vysílání */ zpoždění (3000); }

Krok 3: Testovací kód čtyř relé

/* skica Laurense Korste pro Arduino (ESP / NodeMCU)

* Ale ostatní desky budou také fungovat * www.boktorrobotica.nl * V tomto skeychu budou 4 relé aktivována a deaktivována */ #include // pro I2C komunikaci neplatné nastavení () {Serial.begin (115200); // zahájení seriálu pro ladění (9600 pro UNO) Wire.begin (D1, D2); // spojení sběrnice i2c s SDA = D1 a SCL = D2 NodeMCU není potřeba pro UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // začněte adresou zařízení Wire.write (i); // volba relais Wire.write (0xFF); // odešlete kód „on“FF (každý počet od 01 do FF bude stačit) Wire.endTransmission (); // zastavení přenosu Serial.write (i); Serial.println ("aan"); zpoždění (1000); Wire.beginTransmission (0x10); // začněte adresou zařízení Wire.write (i); Wire.write (0x00); // Odeslání „vypnutého“kódu Wire.endTransmission (); // zastavení přenosu Serial.write (i); Serial.println ("uit"); zpoždění (1000); }}

Krok 4: Můj projekt

Můj projekt
Můj projekt
Můj projekt
Můj projekt

Napsal jsem kód pro ovládání mých 3 žaluzií. To lze provést pomocí přepínačů, ale také pomocí aplikace BLYNK, viz obrázek.

  • Jedním krátkým stisknutím spustíte pohyb jedné závěrky (nebo ji zastavíte, když se pohybuje).
  • Jedno dlouhé stisknutí a všechny tři rolety se otevřou (nebo zavřou nebo zastaví).
  • Dvojitý tlak: žaluzie se dostanou do polohy „děr“.

Jak je vidět na obrázku, integroval jsem také teplotní a světelný senzor.

Nyní vše na dobré základní desce plošných spojů a úhledně v krabici.

Krok 5: Zavolejte relé jedním příkazem

Je to užitečné, pokud k aktivaci nebo deaktivaci relé potřebujete pouze jeden příkaz. Níže je funkce, která to dokáže (s lowbyte a highbyte).

/ * skica Laurense Korste pro Arduino (ESP/NodeMCU) s reléovou deskou I2C * Ale ostatní desky to také zvládnou * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * V tomto náčrtu bude relé aktivováno jedním voláním; * // #include // pro komunikaci I2C // Deklarace relé 4 PCB na PCB Jsou možná 4 relé. V tomto náčrtu jsou sloučeny pouze dvě PCB // PCB a relé, takže je lze volat jedním příkazem const byte PutOn = 0xFF; // příkaz k zapnutí const byte PutOff = 0x00; // příkaz k vypnutí konstantní slovo Relay1bord1 = 0x1001; // můžete náhodně hledat jména podle příkladu Relay1 konst slovo Relay2bord1 = 0x1002; // můžete náhodně hledat jména podle příkladu Relay2 konst word Relay3bord1 = 0x1003; // můžete náhodně hledat jména podle Relay3 konst slovo Relay4bord1 = 0x1004; // můžete náhodně pojmenovat příkladem Relay4 const slovo Relay1bord2 = 0x1101; // můžete náhodně pojmenovat příkladem Relay5 const w ord Relay2bord2 = 0x1102; // názvy můžete náhodně zobrazit příkladem Relay6 const word Relay3bord2 = 0x1103; // názvy můžete náhodně zobrazit příkladem Relay7 const word Relay4bord2 = 0x1104; // názvy můžete náhodně zobrazit příkladem Relay8 const word Relay1bord3 = 0x1201; // názvy můžete náhodně zobrazit příkladem Relay9 const word Relay2bord4 = 0x1302; // názvy můžete náhodně zobrazit příkladem Relay14 void setup () {Serial.begin (115200); // zahájení seriálu pro ladění (9600 pro UNO) Wire.begin (D1, D2); // spojení sběrnice i2c s SDA = D1 a SCL = D2 NodeMCU není potřeba pro UNO} void loop () {// pro přepnutí relé 4 na PCB 2 na RelayActie (Relay4bord2, PutOn); zpoždění (1000); // přepnutí relé 4 na DPS 2 vypnuto RelayActie (Relay4bord2, PutOff); zpoždění (1000); } void RelayActie (word Relay, byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relé)); Wire.write (OnOrOff); Wire.endTransmission (); }

Doporučuje: