Turinys:

„I2C“relė susitiko su „Arduino IDE“: 5 žingsniai
„I2C“relė susitiko su „Arduino IDE“: 5 žingsniai

Video: „I2C“relė susitiko su „Arduino IDE“: 5 žingsniai

Video: „I2C“relė susitiko su „Arduino IDE“: 5 žingsniai
Video: Считываем ИК-сигнал при помощи arduino uno и библиотеки IRremote. 2024, Liepa
Anonim
„I2C“relė susitiko su „Arduino IDE“
„I2C“relė susitiko su „Arduino IDE“

Aš užsisakiau gražią klaviatūrą, bet nebuvo jokios „ArduinoIDE“instrukcijos, tik „Raspberry Pi“. Aš sužinau, kaip jį naudoti su „Arduino“, ir noriu juo pasidalyti, kad galėtumėte sutaupyti laiko.

Originalus RaspberryPi pavyzdys:

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

Puiku tai, kad galite sukrauti iki 4 lentų. Taigi galite naudoti maks. 4 x 4 = 16 relių viename I2C magistralėje.

Taip pat yra keletas trūkumų:

  • maži terminalai, netinka 1 mm2 viela
  • jūs negalite pakeisti apatinių jungčių laidų, kai jie yra sukrauti kartu

Bet vis tiek patogi lenta.

1 žingsnis: laidų sujungimas

Laidavimas
Laidavimas
Laidavimas
Laidavimas
Laidavimas
Laidavimas

Nuotraukose galite pamatyti laidą.

52Pi reikia tiek 5 V (relėms), tiek 3,3 V (I2C lustas).

Taigi reikia 5 laidų:

  • GND į GND
  • Nuo 5 V iki 5 V.
  • Nuo 3,3 V iki 3,3 V
  • SLA į SLA
  • SCL į SCL

Jei naudojate „Arduino UNO“ar kitą 5 V įtampą, ne daugiau kaip 3, 6 V iš I2C valdiklio! Naudokite rezistorius arba sumažinkite 5 V iš „Arduino“PIN kodų!

2 veiksmas: paprasto kodo pavyzdys:

/* „Arduino IDE“(ESP) pavyzdys „I2C relaisboard“.

* Laurens Korste www.boktorrobotica.nl * laisvai naudotis. */ #include // I2C ryšio void setup () {// ši taisyklė netaikoma UNO ar plokštėms su specialiais I2C kaiščiais Wire.begin (D1, D2); // prisijungti prie „i2c“magistralės naudojant SDA = D1 ir SCL = D2, skirtą „NodeMCU“} tuštumai () {Wire.beginTransmission (0x10);/ * pradėti siųsti į I2C adresą 10 (taip pat pakeisti į 11, 12 arba 13) */ Viela. rašyti (0x01); / * pasirinkimas relė 1 (iš 4) 10 plokštėje (taip pat 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* nustatykite relę 1 10 plokštėje į ĮJUNGTA. visi skaičiai> 0 tai padarys */ Wire.endTransmission (); / * sustabdyti perdavimą */ uždelsti (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * 10 relę 1 nustatykite į OFF */ Wire.endTransmission (); / * sustabdyti perdavimą */ uždelsti (3000); }

3 žingsnis: keturių relių bandymo kodas

/* eskizas Laurens Korste, skirtas Arduino (ESP / NodeMCU)

* Bet ir kitos plokštės taip pat tiks. * Www.boktorrobotica.nl * Šiuo atveju 4 relės bus suaktyvintos ir išjungtos */ #include // I2C ryšio void setup () {Serial.begin (115200); // pradėti derinimo seriją (9600 UNO) Wire.begin (D1, D2); // prisijungti prie i2c magistralės su SDA = D1 ir SCL = D2 iš NodeMCU nereikia UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // pradėkite nuo įrenginio adreso Wire.write (i); // pasirinkimas relais Wire.write (0xFF); // atsiųskite „on“kodą FF (tiks kiekvienas skaičiavimas nuo 01 iki FF) Wire.endTransmission (); // nustoti perduoti Serial.write (i); Serial.println ("aan"); vėlavimas (1000); Wire.beginTransmission (0x10); // pradėkite nuo įrenginio adreso Wire.write (i); Wire.write (0x00); // Siųsti „išjungto“kodą Wire.endTransmission (); // nustoti perduoti Serial.write (i); Serial.println ("uit"); vėlavimas (1000); }}

4 žingsnis: Mano projektas

Mano projektas
Mano projektas
Mano projektas
Mano projektas

Parašiau kodą, kaip valdyti 3 langines. Tai galima padaryti naudojant jungiklius, bet ir naudojant programą „BLYNK“, žr.

  • Trumpas paspaudimas pradės judinti vieną langinę (arba sustabdys ją judant).
  • Vienas ilgas paspaudimas ir visos trys langinės atsidaro (arba užsidaro arba sustoja).
  • Dvigubas slėgis: langinės pereina į „skylių“padėtį.

Kaip matyti paveikslėlyje, aš taip pat integravau temperatūros ir šviesos jutiklį.

Dabar viskas ant gero pagrindo PCB ir tvarkingai dėžutėje.

5 veiksmas: iškvieskite relę naudodami vieną komandą

Tai naudinga, jei jums reikia tik vienos komandos, kad įjungtumėte arba išjungtumėte relę. Žemiau yra funkcija, kuri gali tai padaryti (su mažu ir dideliu baitu).

/ * Laurenso Korste eskizas „Arduino“(ESP/NodeMCU) su I2C relių lenta.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Šiame eskize relė bus suaktyvinta vienu skambučiu; * // #include // I2C ryšiui // relės deklaracija. 4 PCB per PCB Galimos 4 relės. Šiame eskize sujungiamos tik dvi PCB // PCB ir relės, kad jas būtų galima iškviesti viena komanda const byte PutOn = 0xFF; // komanda, skirta įjungti konst baitą PutOff = 0x00; // komandą išjungti const žodis Relay1bord1 = 0x1001; // pavadinimus galite atkurti pavyzdžiu Relay1 const žodis Relay2bord1 = 0x1002; // galite atkurti pavadinimus pagal pavyzdį Relay4bord1 = 0x1004; // vardus galite atkurti pagal pavyzdį ord Relay2bord2 = 0x1102; // pavadinimus galite rasti pavyzdžiu Relay6 const žodis Relay3bord2 = 0x1103; // pavadinimus galite rasti pavyzdžiu Relay7 const žodis Relay4bord2 = 0x1104; // pavadinimus galite rasti pavyzdžiu Relay8 const žodis Relay1bord3 = 0x1201; // pavadinimus galite rasti pavyzdžiu Relay9 konstantinis žodis Relay2bord4 = 0x1302; // pavadinimus galite rasti pavyzdžiu Relay14 void setup () {Serial.begin (115200); // pradėti derinimo seriją (9600 UNO) Wire.begin (D1, D2); // prisijungti prie i2c magistralės su SDA = D1 ir SCL = D2 iš NodeMCU nereikia UNO} void loop () {// perjungti 4 relę ant PCB 2 ant RelayActie (Relay4bord2, PutOn); vėlavimas (1000); // perjungti 4 relę ant PCB 2 išjungti „RelayActie“(„Relay4bord2“, „PutOff“); vėlavimas (1000); } void RelayActie (žodis Relay, baitas OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relė)); Wire.write (OnOrOff); Wire.endTransmission (); }

Rekomenduojamas: