Orodha ya maudhui:

Uwasilishaji wa I2C umekutana na Arduino IDE: Hatua 5
Uwasilishaji wa I2C umekutana na Arduino IDE: Hatua 5

Video: Uwasilishaji wa I2C umekutana na Arduino IDE: Hatua 5

Video: Uwasilishaji wa I2C umekutana na Arduino IDE: Hatua 5
Video: BTT SKR2 — Основы SKR 2 (Ред. B) 2024, Julai
Anonim
Uwasilishaji wa I2C umekutana na Arduino IDE
Uwasilishaji wa I2C umekutana na Arduino IDE

Ninaamuru relayboard nzuri lakini hakukuwa na maagizo ya ArduinoIDE, tu Raspberry Pi e.o. Ninajua jinsi ya kuitumia na Arduino na unataka kushiriki ili uweze kuokoa wakati huo.

Mfano halisi wa RaspberryPi:

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

Jambo zuri ni kwamba unaweza kuweka hadi bodi 4. Kwa hivyo unaweza kutumia max. 4 x 4 = 16 relay kwenye basi moja ya I2C.

Kuna pia hasara:

  • vituo vidogo, havilingani na waya 1 mm2
  • huwezi kubadilisha wiring ya viunganisho vya chini wakati vimewekwa pamoja

Lakini bado bodi inayofaa.

Hatua ya 1: Waya

Waya
Waya
Waya
Waya
Waya
Waya

Katika picha unaweza kuona waya.

52Pi inahitaji zote 5V (kwa relay's) en 3.3V (I2C chip).

Kwa hivyo waya 5 zinahitajika:

  • GND kwa GND
  • 5 V hadi 5 V
  • 3.3 V hadi 3.3 V
  • SLA kwa SLA
  • SCL hadi SCL

Ikiwa unatumia Arduino UNO au nyingine 5 V kuwa ware ya max 3, 6 V kutoka kwa mtawala wa I2C! Tumia vipingamizi au vinginevyo kupunguza 5 V kutoka kwa PIN ya Arduino!

Hatua ya 2: Mfano Rahisi wa Msimbo:

/ * Arduino IDE (ESP) mfano wa I2C relaisboard.

* Na Laurens Korste www.boktorrobotica.nl * huru kutumia. * / # pamoja // // jiunge na basi ya i2c na SDA = D1 na SCL = D2 kwa NodeMCU} kitanzi batili () {Wire.beginTransmission (0x10); / * anza kupeleka kwa I2C anwani 10 (kubadilisha pia kuwa 11, 12 au 13) * / Wire andika (0x01); / * uchaguzi relais 1 (kati ya 4) kwenye bodi 10 (pia 0x02, 0x03, 0x04) * / Wire.write (0xFF); / * weka relais 1 kwenye ubao 10 hadi ON. nambari zote> 0 zitafanya hivyo * / Wire.endTransmission (); / * acha kusambaza * / kuchelewesha (3000); Uwasilishaji wa waya (0x10); / * * / Wire.write (0x01); Andika waya (0x00); / * weka relais 1 kwenye ubao 10 hadi OFF * / Wire.endTrmmission (); / * acha kusambaza * / kuchelewesha (3000); }

Hatua ya 3: Nambari nne za Mtihani wa Kupitisha

/ * mchoro wa Laurens Korste wa Arduino (ESP / NodeMCU)

* Lakini bodi zingine zitafanya pia * www.boktorrobotica.nl * Katika skeych al hii relay 4 zitaamilishwa na kuzimwa * / # pamoja na // kwa usanidi batili wa mawasiliano wa I2C () {Serial.begin (115200); // kuanza serial kwa utatuzi (9600 kwa UNO) Wire.begin (D1, D2); // jiunge na i2c basi na SDA = D1 na SCL = D2 ya NodeMCU hakuna haja ya UNO} kitanzi batili () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // anza na anwani ya kifaa Wire.write (i); // chaguo relais Wire.write (0xFF); // tuma nambari "kwenye" FF (kila hesabu kutoka 01 hadi FF itafanya) Wire.endTransmission (); // kuacha kusambaza Serial.write (i); Serial.println ("aan"); kuchelewesha (1000); Uwasilishaji wa waya (0x10); // anza na anwani ya kifaa Wire.write (i); Andika waya (0x00); // Tuma nambari ya "kuzima" Wire.endTransmission (); // kuacha kusambaza Serial.write (i); Serial.println ("uit"); kuchelewesha (1000); }}

Hatua ya 4: Mradi wangu

Mradi Wangu
Mradi Wangu
Mradi Wangu
Mradi Wangu

Nimeandika nambari ya kutumia shutters zangu 3. Hii inaweza kufanywa na swichi lakini pia na programu ya BLYNK, Angalia picha.

  • Bonyeza moja fupi litaanza kusonga shutter moja (au isimishe wakati inahamia).
  • Bonyeza kwa muda mrefu na vifunga vyote vitatu vimefunguliwa (au funga au simama).
  • Shinikizo mbili: shutters huenda kwenye nafasi ya "mashimo".

Kama inavyoonekana kwenye picha, niliunganisha pia sensorer ya joto na mwanga.

Sasa kila kitu kwenye PCB nzuri ya msingi na nadhifu kwenye sanduku.

Hatua ya 5: Piga Reli kwa Amri Moja

Ni muhimu ikiwa unahitaji tu amri moja kuamsha au kuzima relay. Chini ni kazi inayoweza kufanya hivi (na lowbyte na highbyte).

/ * mchoro wa Laurens Korste wa Arduino (ESP / NodeMCU) na relayboard ya I2C * Lakini bodi zingine zitafanya pia * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com / index.php / DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Katika mchoro huu relay itaamilishwa kwa simu moja; Relays 4 zinawezekana. Katika mchoro huu ni PCB mbili tu / Pcb na rejeshi zimeunganishwa ili waweze kuitwa na amri moja const byte PutOn = 0xFF; neno Relay1bord1 = 0x1001; // unaweza nafasi majina kwa mfano Relay1 const neno Relay2bord1 = 0x1002; // unaweza nafasi majina kwa mfano Relay2 const neno Relay3bord1 = 0x1003; // unaweza nafasi majina kwa mfano Relay3 const neno Relay4bord1 = 0x1004; // unaweza nafasi majina kwa mfano Relay4 const neno Relay1bord2 = 0x1101; // unaweza nafasi majina kwa mfano Relay5 const w eda Relay2bord2 = 0x1102; // unaweza nafasi majina kwa mfano Relay6 const neno Relay3bord2 = 0x1103; // unaweza nafasi majina kwa mfano Relay7 const neno Relay4bord2 = 0x1104; // unaweza nafasi majina kwa mfano Relay8 const neno Relay1bord3 = 0x1201; // unaweza nafasi majina kwa mfano Relay9 const neno Relay2bord4 = 0x1302; // unaweza nafasi majina kwa mfano Relay14 batili kuanzisha () {Serial.begin (115200); // anza serial kwa utatuzi (9600 kwa UNO) Wire.anza (D1, D2); // jiunge na basi ya i2c na SDA = D1 na SCL = D2 ya NodeMCU hakuna haja ya kitanzi batili cha UNO} () {// kubadili relay 4 kwenye PCB 2 kwenye RelayActie (Relay4bord2, PutOn); kuchelewesha (1000); // kubadili relay 4 kwenye PCB 2 mbali RelayActie (Relay4bord2, PutOff); kuchelewesha (1000); } batili RelayActie (neno Relay, byte OnOrOff) {Wire.beginTransmission (highByte (Relay)); Andika waya (lowByte (Relay)); Andika waya (OnOrOff); Uwasilishaji wa waya (); }

Ilipendekeza: