Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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
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
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 (); }