Sisukord:

I2C relee kohtus Arduino IDE -ga: 5 sammu
I2C relee kohtus Arduino IDE -ga: 5 sammu

Video: I2C relee kohtus Arduino IDE -ga: 5 sammu

Video: I2C relee kohtus Arduino IDE -ga: 5 sammu
Video: Согласование логических уровней 5 и 3.3 вольтовой периферии 2024, November
Anonim
I2C relee kohtus Arduino IDE -ga
I2C relee kohtus Arduino IDE -ga

Tellin kena relaplaadi, kuid ArduinoIDE juhiseid polnud, lihtsalt Raspberry Pi e.o. Ma saan teada, kuidas seda Arduinoga kasutada, ja tahan seda jagada, et saaksite seda aega säästa.

Algne RaspberryPi näide:

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

Tore on see, et saate virnastada kuni 4 lauda. Nii et saate kasutada max. 4 x 4 = 16 releed ühel I2C siinil.

Samuti on mõned puudused:

  • väikesed terminad, ei sobi 1 mm2 traati
  • te ei saa alumiste pistikute juhtmeid muuta, kui need on kokku laotud

Aga siiski käepärased lauad.

Samm: traadiga ühendamine

Juhtmed
Juhtmed
Juhtmed
Juhtmed
Juhtmed
Juhtmed

Piltidel on näha juhtmestik.

52Pi vajab mõlemat 5 V (relee jaoks) ja 3,3 V (I2C kiip).

Seega on vaja 5 juhtmest:

  • GND kuni GND
  • 5 V kuni 5 V.
  • 3,3 V kuni 3,3 V
  • SLA kuni SLA
  • SCL kuni SCL

Kui kasutate Arduino UNO -d või muud 5 V pinget, olge I2C kontrollerist maksimaalselt 3, 6 V! Kasutage takisteid või muul viisil, et alandada 5 V Arduino PIN -koodidest!

Samm: lihtsa koodi näide:

/* Arduino IDE (ESP) näide I2C relaisboardile.

* Laurens Korste poolt www.boktorrobotica.nl * tasuta kasutada. */ #include // I2C side tühimike seadistamiseks () {// see reegel ei kehti UNO või tahvlite jaoks, millel on spetsiaalsed I2C tihvtid Wire.begin (D1, D2); // liituge i2c siiniga SDA = D1 ja SCL = D2 NodeMCU jaoks} tühisilmus () {Wire.beginTransmission (0x10);/ * alustage edastamist I2C aadressile 10 (muutmaks ka 11, 12 või 13) */ traat.kirjutage (0x01); / * valikrelaas 1 (neljast) pardal 10 (ka 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* lülitage pardal 10 olev relee 1 olekusse ON. kõik numbrid> 0 teevad seda */ Wire.endTransmission (); / * lõpetage saatmine */ viivitus (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * lülitage pardal 10 olev relee 1 asendisse OFF */ Wire.endTransmission (); / * lõpetage saatmine */ viivitus (3000); }

3. samm: nelja relee testikood

/* eskiis Laurens Korste Arduino jaoks (ESP / NodeMCU)

* Kuid ka teised tahvlid teevad seda * www.boktorrobotica.nl * Selles skeemis aktiveeritakse 4 releed ja need deaktiveeritakse */ #include // I2C side tühimike seadistamiseks () {Serial.begin (115200); // silumise seeria alustamine (9600 UNO jaoks) Wire.begin (D1, D2); // liituge i2c siiniga, kus SDA = D1 ja SCL = D2 NodeMCU -st ei ole vaja UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // alusta seadme aadressiga Wire.write (i); // valida relais Wire.write (0xFF); // saatke "on" kood FF (iga loend 01 kuni FF sobib) Wire.endTransmission (); // lõpetage Serial.write edastamine (i); Serial.println ("aan"); viivitus (1000); Wire.beginTransmission (0x10); // alusta seadme aadressiga Wire.write (i); Wire.write (0x00); // Saada "off" kood Wire.endTransmission (); // lõpetage Serial.write edastamine (i); Serial.println ("uit"); viivitus (1000); }}

4. samm: minu projekt

Minu Projekt
Minu Projekt
Minu Projekt
Minu Projekt

Olen kirjutanud koodi oma kolme aknaluugi kasutamiseks. Seda saab teha lülititega, aga ka rakendusega BLYNK, vt pilti.

  • Üks lühike vajutus käivitab ühe katiku (või peatab selle, kui see liigub).
  • Üks pikk vajutus ja kõik kolm aknaluuki avanevad (või sulguvad või seiskuvad).
  • Kahekordne rõhk: aknaluugid lähevad "aukude" asendisse.

Nagu pildilt näha, integreerisin ka temperatuuri- ja valgusanduri.

Nüüd kõik heal baasplaadil ja korralikult karbis.

Samm: helistage releele ühe käsuga

See on kasulik, kui vajate relee aktiveerimiseks või deaktiveerimiseks ainult ühte käsku. Allpool on funktsioon, mis seda võimaldab (väikese ja suure baidi korral).

/ * eskiis Laurens Korste Arduino jaoks (ESP/NodeMCU) koos I2C releedelauaga.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Selles visandis aktiveeritakse relee ühe kõnega; * // #include // I2C side jaoks // Relee deklaratsioon. 4 PCB-d PCB kohta Võimalikud on 4 releed. Selles visandis ühendatakse ainult kaks PCB // PCB ja releed, nii et neid saab kutsuda ühe käsuga const byte PutOn = 0xFF; // käsk const byte sisselülitamiseks PutOff = 0x00; // käsk väljalülitamiseks const sõna Relay1bord1 = 0x1001; // saate nimesid juhtida näite kaudu Relay4bord1 = 0x1004; // saate nimesid juhtida näite abil ord Relay2bord2 = 0x1102; // saate nimesid juhtida näite abil Relay6 const sõna Relay3bord2 = 0x1103; // saate nimesid juhtida näite abil Relay7 const sõna Relay4bord2 = 0x1104; // saate nimesid juhtida näite abil Relay8 const sõna Relay1bord3 = 0x1201; // saate nimesid juhtida näite abil Relay9 const sõna Relay2bord4 = 0x1302; // saate nimesid juhtida näiteks Relay14 void setup () {Serial.begin (115200); // silumise seeria alustamine (9600 UNO jaoks) Wire.begin (D1, D2); // liituge i2c siiniga SDA = D1 ja SCL = D2 NodeMCU -s ei ole vaja UNO} void loop () {// relee 4 lülitamiseks PCB 2 -l RelayActie (Relay4bord2, PutOn); viivitus (1000); // lülitada relee 4 PCB 2 välja RelayActie (Relay4bord2, PutOff); viivitus (1000); } void RelayActie (sõna Relay, bait OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relee)); Wire.write (OnOrOff); Wire.endTransmission (); }

Soovitan: