Obsah:

Relé I2C sa stretlo s Arduino IDE: 5 krokov
Relé I2C sa stretlo s Arduino IDE: 5 krokov

Video: Relé I2C sa stretlo s Arduino IDE: 5 krokov

Video: Relé I2C sa stretlo s Arduino IDE: 5 krokov
Video: Учим Arduino за 1 час! #Профессионально 2024, November
Anonim
Relé I2C sa stretlo s Arduino IDE
Relé I2C sa stretlo s Arduino IDE

Objednal som si pekný reléboard, ale neexistoval žiadny pokyn ArduinoIDE, iba Raspberry Pi e.o. Zistil som, ako ho používať s Arduino a chcem ho zdieľať, aby ste ušetrili čas.

Pôvodný príklad RaspberryPi:

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

Pekné na tom je, že môžete skladať až 4 dosky. Môžete teda použiť max. 4 x 4 = 16 relé na jednej zbernici I2C.

Existujú aj niektoré nevýhody:

  • malé koncovky, nehodí sa na drôt 1 mm2
  • nemôžete zapojiť spodné konektory, ak sú navzájom spojené

Ale stále praktické dosky.

Krok 1: Zvodenie

Wirering
Wirering
Wirering
Wirering
Wirering
Wirering

Na obrázkoch vidíte ubúdanie.

52Pi potrebuje 5V (pre relé) a 3,3V (čip I2C).

Potrebných je teda 5 drôtov:

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

Ak používate Arduino UNO alebo iný 5 V zosilňovač s maximálnym napätím 3, 6 V z ovládača I2C! Použite odpory alebo inak znížte 5 V z PIN kódu Arduino!

Krok 2: Príklad jednoduchého kódu:

/* Príklad Arduino IDE (ESP) pre relaisboard I2C.

* Od Laurens Korste www.boktorrobotica.nl * voľne použiteľné. */ #include // pre I2C komunikáciu void setup () {// toto pravidlo neplatí pre UNO alebo dosky s vyhradenými I2C pinmi Wire.begin (D1, D2); // pripojenie zbernice i2c s SDA = D1 a SCL = D2 pre NodeMCU} prázdna slučka () {Wire.beginTransmission (0x10);/ * začne vysielať na adresu I2C 10 (zmeniť tiež na 11, 12 alebo 13) */ Wire.write (0x01); / * výber relé 1 (zo 4) na doske 10 (tiež 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* nastavte relé 1 na doske 10 na ON. všetky čísla> 0 to urobia */ Wire.endTransmission (); / * zastaviť prenos */ oneskorenie (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * nastavte relé 1 na doske 10 do VYPNUTÉ */ Wire.endTransmission (); / * zastaviť prenos */ oneskorenie (3000); }

Krok 3: Testovací kód štyroch relé

/* skica Laurensa Korsteho pre Arduino (ESP / NodeMCU)

* Ale budú fungovať aj ostatné dosky * www.boktorrobotica.nl * V tomto skeych al budú aktivované a deaktivované 4 relé */ #include // pre I2C komunikáciu void setup () {Serial.begin (115200); // začiatok seriálu na ladenie (9600 pre UNO) Wire.begin (D1, D2); // pripojenie zbernice i2c s SDA = D1 a SCL = D2 NodeMCU nie je potrebné pre UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // začať s adresou zariadenia Wire.write (i); // vyberte relais Wire.write (0xFF); // odoslanie „zapnutého“kódu FF (urobí to každý počet od 01 do FF) Wire.endTransmission (); // zastavenie prenosu Serial.write (i); Serial.println ("aan"); oneskorenie (1000); Wire.beginTransmission (0x10); // začať s adresou zariadenia Wire.write (i); Wire.write (0x00); // Odoslanie „vypnutého“kódu Wire.endTransmission (); // zastavenie prenosu Serial.write (i); Serial.println ("uit"); oneskorenie (1000); }}

Krok 4: Môj projekt

Môj projekt
Môj projekt
Môj projekt
Môj projekt

Napísal som kód na ovládanie mojich 3 uzávierok. To je možné vykonať pomocou prepínačov, ale aj pomocou aplikácie BLYNK, Pozri obrázok.

  • Jedným krátkym stlačením sa spustí pohyb jednej uzávierky (alebo sa zastaví, keď sa pohybuje).
  • Jedno dlhé stlačenie a všetky tri žalúzie sa otvoria (alebo zatvoria alebo zastavia).
  • Dvojitý tlak: žalúzie idú do polohy „dier“.

Ako je vidieť na obrázku, integroval som aj snímač teploty a svetla.

Teraz všetko na dobrej základnej doske a úhľadne v krabici.

Krok 5: Zavolajte relé jedným príkazom

Je to užitočné, ak na aktiváciu alebo deaktiváciu relé potrebujete iba jeden príkaz. Nasleduje funkcia, ktorá to dokáže (s nízkym a vysokým bajtom).

/ * skica Laurensa Korsteho pre Arduino (ESP/NodeMCU) s reléovou doskou I2C * Ale postačia aj iné dosky * 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áčrte bude relé aktivované jedným volaním; * // #include // pre komunikáciu I2C // Deklarácia relé. 4 PCB na PCB Možné sú 4 relé. V tomto náčrte sú zlúčené iba dve DPS // DPS a relé, takže ich je možné vyvolať jedným príkazom const byte PutOn = 0xFF; // príkaz na zapnutie const byte PutOff = 0x00; // príkaz na vypnutie konštantné slovo Relay1bord1 = 0x1001; // môžete náhodne hľadať mená podľa príkladu Relay1 konštantné slovo Relay2bord1 = 0x1002; // môžete náhodne vyberať mená príkladne Relay2 const word Relay3bord1 = 0x1003; // môžete náhodne vyberať mená podľa príkladného relé Relay3 Relay4bord1 = 0x1004; // môžete náhodne hľadať mená podľa príkladu Relay4 const slovo Relay1bord2 = 0x1101; // môžete náhodne vyberať mená podľa príkladu Relay5 const w ord Relay2bord2 = 0x1102; // názvy môžete uvádzať v ukážkach Relay6 const word Relay3bord2 = 0x1103; // názvy môžete náhodne znázorniť na príklade Relé7 const slovo Relay4bord2 = 0x1104; // názvy môžete náhodne znázorniť na príklade Relay8 const word Relay1bord3 = 0x1201; // názvy môžete náhodne znázorniť na príklade Relay9 const word Relay2bord4 = 0x1302; // názvy môžete náhodne nájsť napríklad na Relé14 void setup () {Serial.begin (115200); // zacat ladenie pre ladenie (9600 pre UNO) Wire.begin (D1, D2); // spojenie zbernice i2c s SDA = D1 a SCL = D2 NodeMCU nie je potrebné pre UNO} void loop () {// na prepnutie relé 4 na PCB 2 na RelayActie (Relay4bord2, PutOn); oneskorenie (1000); // na vypnutie relé 4 na DPS 2 RelayActie (Relay4bord2, PutOff); oneskorenie (1000); } void RelayActie (slovné relé, bajt OnOrOff) {Wire.beginTransmission (highByte (relé)); Wire.write (lowByte (relé)); Wire.write (OnOrOff); Wire.endTransmission (); }

Odporúča: