Tartalomjegyzék:

I2C relé Arduino IDE -vel: 5 lépés
I2C relé Arduino IDE -vel: 5 lépés

Videó: I2C relé Arduino IDE -vel: 5 lépés

Videó: I2C relé Arduino IDE -vel: 5 lépés
Videó: Уроки Arduino #8 - управление реле 2024, November
Anonim
I2C relé Arduino IDE -vel
I2C relé Arduino IDE -vel

Rendelek egy szép relayboardot, de nem volt ArduinoIDE utasítás, csak Raspberry Pi e.o. Megtudom, hogyan kell használni az Arduino -val, és meg akarom osztani, hogy időt takarítson meg.

Eredeti RaspberryPi példa:

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

Szép dolog az, hogy akár 4 táblát is halmozhat. Tehát max. 4 x 4 = 16 relé egy I2C buszon.

Van néhány hátránya is:

  • kis terminálok, ne illesszenek 1 mm2 -es vezetéket
  • nem változtathatja meg az alsó csatlakozók huzalozását, ha egymásra vannak rakva

De még mindig praktikus tábla.

1. lépés: huzalozás

Huzalozás
Huzalozás
Huzalozás
Huzalozás
Huzalozás
Huzalozás

A képeken látható a huzalozás.

Az 52Pi -nek szüksége van 5V -ra (a relékhez) és a 3.3V -ra (I2C chip).

Tehát 5 vezeték szükséges:

  • GND - GND
  • 5 V -tól 5 V -ig
  • 3,3 V -tól 3,3 V -ig
  • SLA - SLA
  • SCL -ből SCL -be

Ha Arduino UNO -t vagy más 5 V -os feszültséget használ, akkor az I2C vezérlőből a maximum 3, 6 V -os edényt használja! Használjon ellenállásokat, vagy csökkentse az 5 V -ot az Arduino PIN -kből!

2. lépés: Példa egyszerű kódra:

/* Arduino IDE (ESP) példa az I2C relisboardra.

* Laurens Korste www.boktorrobotica.nl * szabadon használható. */ #include // I2C kommunikáció void setup () {// ez a szabály nem vonatkozik az UNO -ra vagy a táblákra, amelyek dedikált I2C csapokkal Wire.begin (D1, D2); // csatlakozzon az i2c buszhoz SDA = D1 és SCL = D2 esetén a NodeMCU számára} void loop () {Wire.beginTransmission (0x10);/ * kezdje el az átvitelt az I2C 10 -es címre (11, 12 vagy 13 -ra is módosíthatja) */ Wire.write (0x01); / * választás relé 1 (4 -ből) a 10. fedélzeten (szintén 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* állítsa a relét 1 a 10. fedélzeten BE állásba. minden szám> 0 ezt teszi */ Wire.endTransmission (); / * az adás leállítása */ késleltetés (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * állítsa a relát 1 a 10. fedélzeten KI */ Wire.endTransmission (); / * az adás leállítása */ késleltetés (3000); }

3. lépés: Négy relé tesztkódja

/* Laurens Korste vázlata az Arduino számára (ESP / NodeMCU)

* De más táblák is megteszik * www.boktorrobotica.nl * Ebben a rendszerben a 4 relé aktiválódik, deaktiválva */ #include // az I2C kommunikáció érvénytelen beállításához () {Serial.begin (115200); // sorozat indítása a hibakereséshez (9600 UNO esetén) Wire.begin (D1, D2); // csatlakozzon az i2c buszhoz a NodeMCU SDA = D1 és SCL = D2 elemével, nincs szükség UNO} void loop () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // kezdődik az eszköz címével Wire.write (i); // a relé kiválasztása Wire.write (0xFF); // elküldi az "on" kódot FF (minden szám 01 -től FF -ig megteszi) Wire.endTransmission (); // állítsa le a Serial.write (i) továbbítását; Serial.println ("aan"); késleltetés (1000); Wire.beginTransmission (0x10); // kezdődik az eszköz címével Wire.write (i); Wire.write (0x00); // Küldje el az "off" kódot Wire.endTransmission (); // állítsa le a Serial.write (i) továbbítását; Serial.println ("uit"); késleltetés (1000); }}

4. lépés: A projektem

Az én projektem
Az én projektem
Az én projektem
Az én projektem

Írtam egy kódot a 3 redőny működtetéséhez. Ezt meg lehet tenni kapcsolókkal, de a BLYNK alkalmazással is, lásd a képet.

  • Egy rövid megnyomás elindítja az egyik redőnyt (vagy leállítja, amikor mozog).
  • Egy hosszú megnyomás és mindhárom redőny kinyílik (vagy bezár vagy leáll).
  • Dupla nyomás: a redőnyök "lyukak" helyzetbe kerülnek.

Amint a képen is látható, beépítettem egy hőmérséklet- és fényérzékelőt is.

Most mindent egy jó alap NYÁK -on és szépen dobozban.

5. lépés: Hívjon egy relét egyetlen paranccsal

Ez akkor hasznos, ha csak egy parancsra van szüksége a relé aktiválásához vagy deaktiválásához. Az alábbiakban egy funkció található, amely ezt megteheti (alacsony és magas bájt esetén).

/ * Laurens Korste vázlata az Arduino (ESP/NodeMCU) számára I2C relé táblával * De más táblák is * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Ebben a vázlatban a relét egy hívás aktiválja; * // #include // az I2C kommunikációhoz // Relék deklarálása. 4 PCB-k PCB-nként 4 relé lehetséges. Ebben a vázlatban csak két NYÁK // NYÁK és relé van összevonva, így egy parancs segítségével hívhatóak meg. const szó Relay1bord1 = 0x1001; // a példákon keresztül véletlenszerűvé teheti a neveket Relay4bord1 = 0x1004; // a nevekre példát adhat a Relay4 konstans szóval ord Relay2bord2 = 0x1102; // a neveket véletlenszerűen példázhatja Relay6 const szó Relay3bord2 = 0x1103; // a neveket véletlenszerűen példázhatja Relay7 const szó Relay4bord2 = 0x1104; // a neveket véletlenszerűen példázhatja Relay8 const szó Relay1bord3 = 0x1201; // a neveket véletlenszerűen példázhatja Relay9 const szó Relay2bord4 = 0x1302; // a nevek véletlenszerűvé tételével példaként Relay14 void setup () {Serial.begin (115200); // sorozat indítása a hibakereséshez (9600 UNO esetén) Wire.begin (D1, D2); // csatlakozzon az i2c buszhoz SDA = D1 és SCL = D2 segítségével a NodeMCU -ban nincs szükség UNO} void loop () {// kapcsolóra, hogy a 4. relét kapcsolja a PCB 2 -n a RelayActie -n (Relay4bord2, PutOn); késleltetés (1000); // a 4. relé PCB -n 2 kikapcsolása RelayActie (Relay4bord2, PutOff); késleltetés (1000); } void RelayActie (szó Relay, bájt OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (Relay)); Wire.write (OnOrOff); Wire.endTransmission (); }

Ajánlott: