Satura rādītājs:

I2C relejs tikās ar Arduino IDE: 5 soļi
I2C relejs tikās ar Arduino IDE: 5 soļi

Video: I2C relejs tikās ar Arduino IDE: 5 soļi

Video: I2C relejs tikās ar Arduino IDE: 5 soļi
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Jūlijs
Anonim
I2C relejs tikās ar Arduino IDE
I2C relejs tikās ar Arduino IDE

Es pasūtīju jauku relayboard, bet nebija ArduinoIDE instrukcijas, tikai Raspberry Pi e.o. Es uzzinu, kā to izmantot ar Arduino, un vēlos to kopīgot, lai jūs varētu ietaupīt šo laiku.

Oriģinālais RaspberryPi piemērs:

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

Patīkami, ka var sakraut līdz 4 dēļiem. Tātad jūs varat izmantot maks. 4 x 4 = 16 releji vienā I2C kopnē.

Ir arī daži mīnusi:

  • mazi termini, neder 1 mm2 stieple
  • jūs nevarat mainīt apakšējo savienotāju vadus, ja tie ir sakrauti kopā

Bet joprojām ērts dēlis.

1. darbība

Stieples
Stieples
Vadu pieslēgšana
Vadu pieslēgšana
Stieples
Stieples

Attēlos var redzēt vadu.

52Pi ir nepieciešami gan 5 V (relejiem), gan 3,3 V (I2C mikroshēma).

Tātad nepieciešami 5 vadi:

  • GND līdz GND
  • 5 V līdz 5 V.
  • No 3.3 V līdz 3.3 V
  • SLA uz SLA
  • SCL uz SCL

Ja izmantojat Arduino UNO vai citu 5 V, tad no I2C kontrollera jābūt ne vairāk kā 3, 6 V! Izmantojiet rezistorus vai arī pazeminiet 5 V no Arduino PIN!

2. darbība: vienkārša koda piemērs:

/* Arduino IDE (ESP) piemērs I2C relaisboard.

* Autors Laurens Korste www.boktorrobotica.nl * brīvi izmantot. */ #include // I2C sakaru void setup () {// šis noteikums nav paredzēts UNO vai dēļiem ar īpašām I2C tapām Wire.begin (D1, D2); // pievienoties i2c kopnei ar SDA = D1 un SCL = D2 NodeMCU} void loop () {Wire.beginTransmission (0x10);/ * sāciet pārraidi uz I2C adresi 10 (lai mainītu arī uz 11, 12 vai 13) */ Wire. rakstīt (0x01); / * izvēles relejs 1 (no 4) uz kuģa 10 (arī 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* iestatiet releju 1 uz kuģa 10 uz ON. visi skaitļi> 0 to darīs */ Wire.endTransmission (); / * pārtraukt pārraidi */ kavēšanās (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * iestatiet releju 1 uz kuģa 10 uz OFF */ Wire.endTransmission (); / * pārtraukt pārraidi */ kavēšanās (3000); }

3. darbība: četru releju pārbaudes kods

/* Laurens Korste skice Arduino (ESP / NodeMCU)

* Bet arī citi dēļi to darīs. * Www.boktorrobotica.nl // sākt sēriju atkļūdošanai (9600 UNO) Wire.begin (D1, D2); // pievienoties i2c kopnei ar SDA = D1 un SCL = D2 no NodeMCU nav nepieciešams UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // sākt ar ierīces adresi Wire.write (i); // izvēlēties releju Wire.write (0xFF); // nosūtīt kodu "on" FF (derēs katrs skaitlis no 01 līdz FF) Wire.endTransmission (); // pārtraukt Serial.write pārraidi (i); Serial.println ("aan"); kavēšanās (1000); Wire.beginTransmission (0x10); // sākt ar ierīces adresi Wire.write (i); Wire.write (0x00); // Nosūtīt kodu "izslēgts" Wire.endTransmission (); // pārtraukt Serial.write pārraidi (i); Serial.println ("uit"); kavēšanās (1000); }}

4. solis: Mans projekts

Mans projekts
Mans projekts
Mans projekts
Mans projekts

Esmu uzrakstījis kodu, lai darbinātu savus trīs slēģus. To var izdarīt ar slēdžiem, bet arī ar lietotni BLYNK. Skatīt attēlu.

  • Ar vienu īsu nospiešanu sāks pārvietot vienu aizvaru (vai apturēs to, kad tas pārvietojas).
  • Viena gara nospiešana un visi trīs slēģi atveras (vai aizveras vai apstājas).
  • Divkāršs spiediens: slēģi nonāk pozīcijā "caurumi".

Kā redzams attēlā, es integrēju arī temperatūras un gaismas sensoru.

Tagad viss uz labas bāzes PCB un kārtīgi kastē.

5. darbība: izsauciet releju ar vienu komandu

Tas ir noderīgi, ja releja aktivizēšanai vai deaktivizēšanai nepieciešama tikai viena komanda. Zemāk ir funkcija, kas to var izdarīt (ar zemu un lielu baitu).

/ * Laurens Korste skice Arduino (ESP/NodeMCU) ar I2C releju dēli.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Šajā skicē relejs tiks aktivizēts ar vienu zvanu; * // #include // I2C komunikācijai // Releju deklarācija. 4 PCB uz PCB Iespējami 4 releji. Šajā skicē tiek apvienoti tikai divi PCB // PCB un releji, lai tos varētu izsaukt ar vienu komandu const byte PutOn = 0xFF; // komanda, lai ieslēgtu const byte PutOff = 0x00; // comand, lai izslēgtu const vārds Relay1bord1 = 0x1001; // jūs varat izlasīt nosaukumus, izmantojot piemēru Relay4bord1 = 0x1004; // jūs varat izlasīt nosaukumus, izmantojot piemēru ord Relay2bord2 = 0x1102; // jūs varat izlasīt nosaukumus, izmantojot piemēru Relay6 const vārds Relay3bord2 = 0x1103; // jūs varat izlasīt nosaukumus, izmantojot piemēru Relay7 const vārds Relay4bord2 = 0x1104; // jūs varat izlasīt nosaukumus, izmantojot piemēru Relay8 const vārds Relay1bord3 = 0x1201; // jūs varat izlasīt nosaukumus, izmantojot piemēru Relay9 const vārds Relay2bord4 = 0x1302; // jūs varat izlasīt nosaukumus, izmantojot piemēru Relay14 void setup () {Serial.begin (115200); // sākt sēriju atkļūdošanai (9600 UNO) Wire.begin (D1, D2); // pievienoties i2c kopnei ar SDA = D1 un SCL = D2 no NodeMCU nav nepieciešams UNO} void loop () {// lai pārslēgtu 4. releju uz PCB 2 uz RelayActie (Relay4bord2, PutOn); kavēšanās (1000); // lai pārslēgtu 4. releju uz PCB 2 izslēgtu RelayActie (Relay4bord2, PutOff); kavēšanās (1000); } void RelayActie (vārds Relay, baits OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (relejs)); Wire.write (OnOrOff); Wire.endTransmission (); }

Ieteicams: