Агуулгын хүснэгт:

I2C реле Arduino IDE -тэй танилцав: 5 алхам
I2C реле Arduino IDE -тэй танилцав: 5 алхам

Видео: I2C реле Arduino IDE -тэй танилцав: 5 алхам

Видео: I2C реле Arduino IDE -тэй танилцав: 5 алхам
Видео: XOD IDE Урок 5 - экран LCD 1602 I2C, делаем метеостанцию 2024, Долдугаар сарын
Anonim
I2C реле Arduino IDE -тэй уулзав
I2C реле Arduino IDE -тэй уулзав

Би сайхан буухиа самбар захиалдаг боловч ArduinoIDE заавар байдаггүй, зүгээр л Raspberry Pi e.o. Би үүнийг Arduino -той хэрхэн ашиглахыг олж мэдээд үүнийг хуваалцахыг хүсч байна, ингэснээр та тэр цагийг хэмнэх болно.

RaspberryPi -ийн анхны жишээ:

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

Гайхалтай зүйл бол та 4 самбарыг овоолж болно. Тиймээс та max -ийг ашиглаж болно. 4 x 4 = 16 реле нэг I2C автобусанд байдаг.

Мөн зарим сул талууд байдаг:

  • жижиг терминалууд, 1 мм2 утастай таарахгүй
  • доод холбогчийг хооронд нь овоолсон үед та утсыг нь өөрчилж чадахгүй

Гэсэн хэдий ч ашиглахад хялбар самбар.

Алхам 1: Утас холбох

Цахилгаан утас
Цахилгаан утас
Цахилгаан утас
Цахилгаан утас
Цахилгаан утас
Цахилгаан утас

Зураг дээр та утсан холболтыг харж болно.

52Pi -д 5V (релений хувьд) en 3.3V (I2C чип) хоёулаа хэрэгтэй.

Тиймээс 5 утас хэрэгтэй болно:

  • GND -ээс GND хүртэл
  • 5 В -оос 5 В хүртэл
  • 3.3 В -оос 3.3 В хүртэл
  • SLA - SLA
  • SCL -ээс SCL хүртэл

Хэрэв та Arduino UNO эсвэл бусад 5 В -ийг ашигладаг бол I2C контроллероос хамгийн ихдээ 3, 6 В -ийн хэмжээтэй байх ёстой! Arduino ПИН -ээс 5 В -ийг буулгахын тулд резистор эсвэл өөр аргыг ашиглаарай!

Алхам 2: Энгийн кодын жишээ:

/* I2C relaisboard -ийн Arduino IDE (ESP) жишээ.

* Лоренс Корстегийн бичсэн www.boktorrobotica.nl * үнэгүй. */ #include // for I2C communication void setup () {// энэ дүрэм нь UNO эсвэл зориулалтын I2C тээглүүртэй Wire.begin (D1, D2) бүхий самбаруудад хамаарахгүй; // i2c автобусанд SDA = D1 ба SCL = D2 -тэй NodeMCU -д нэгдэх} хүчин төгөлдөр бус давталт () {Wire.beginTransmission (0x10);/ * I2C хаягийн 10 руу дамжуулж эхэлнэ (мөн 11, 12 эсвэл 13 болгон өөрчлөх) */ Утас. бичих (0x01); / * 10 -р самбар дээрх сонголт 1 (4 -ээс) (мөн 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* 10 -р самбар дээрх relais 1 -ийг ON болгоно. бүх тоо> 0 үүнийг хийх болно */ Wire.endTransmission (); / * дамжуулалтыг зогсоох */ саатал (3000); Утас.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * 10 -р самбар дээрх relais 1 -ийг OFF болгож тохируулах */ Wire.endTransmission (); / * дамжуулалтыг зогсоох */ саатал (3000); }

Алхам 3: Дөрвөн буухиа туршилтын код

/* Laurens Korste -ийн Arduino -д зориулсан ноорог (ESP / NodeMCU)

* Гэхдээ бусад самбарууд бас хийх болно * www.boktorrobotica.nl * Энэ зураг төсөлд 4 реле идэвхгүй болно. // дибаг хийх цувралыг эхлүүлэх (НҮБ -ын хувьд 9600) Wire.begin (D1, D2); // N2MCU -ийн SDA = D1 ба SCL = D2 бүхий i2c автобусанд нэгдэх UNO} хоосон давталт () {for (int i = 1; i <= 4; i ++) {Wire.beginTransmission (0x10); // Wire.write (i) төхөөрөмжийн хаягаар эхэлнэ; // сонгох relais Wire.write (0xFF); // "on" кодыг FF илгээх (01 -ээс FF хүртэлх тооллого бүр хийх болно) Wire.endTransmission (); // Serial.write (i) дамжуулахаа болих; Serial.println ("aan"); саатал (1000); Утас.beginTransmission (0x10); // Wire.write (i) төхөөрөмжийн хаягаар эхэлнэ; Wire.write (0x00); // "унтраах" кодыг Wire.endTransmission () илгээх; // Serial.write (i) дамжуулахаа болих; Serial.println ("uit"); саатал (1000); }}

Алхам 4: Миний төсөл

Миний төсөл
Миний төсөл
Миний төсөл
Миний төсөл

Би 3 хаалтаа ажиллуулах код бичсэн бөгөөд үүнийг унтраалгаар хийж болохоос гадна BLYNK апп ашиглан үзнэ үү.

  • Нэг богино даралтаар нэг хаалт хөдөлж эхэлнэ (эсвэл хөдөлж байхад нь зогсоо).
  • Нэг урт дарж, бүх гурван хаалт нээгддэг (эсвэл хаах эсвэл зогсоох).
  • Давхар даралт: хаалт нь "нүх" байрлал руу явдаг.

Зураг дээр харагдаж байгаа шиг би бас температур, гэрэл мэдрэгчийг нэгтгэсэн.

Одоо бүх зүйл сайн ПХБ дээр, цэвэрхэн хайрцагт байна.

Алхам 5: Нэг командтай буухиа дуудах

Хэрэв танд реле идэвхжүүлэх эсвэл идэвхгүй болгох ганцхан команд хэрэгтэй бол энэ нь ашигтай болно. Үүнийг хийх боломжтой функцийг доор харуулав (lowbyte ба highbyte).

/ * I2C реле самбар бүхий Laurens Korste -ийн Arduino (ESP/NodeMCU) тойм зураг * Гэхдээ бусад самбарууд * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * Энэ схемд реле нэг дуудлагаар идэвхжих болно; 4 реле боломжтой. Энэ схемд зөвхөн хоёр ПХБ // ПХБ ба релейг нэгтгэсэн тул тэдгээрийг нэг тушаалаар дуудах боломжтой болно. const word Relay1bord1 = 0x1001; // та нэрсийг жишээгээр тохиолдуулан үзэх боломжтой Relay1 const word Relay2bord1 = 0x1002; // та жишээгээр Relay2 const word Relay3bord1 = 0x1003; Relay4bord1 = 0x1004; // та жишээгээр Relay4 const word Relay1bord2 = 0x1101; // нэрсийг Relay5 const w жишээгээр тохиолдуулан үзэх боломжтой. ord Relay2bord2 = 0x1102; // та жишээгээр Relay6 const word Relay3bord2 = 0x1103; // жишээгээр Relay7 const word Relay4bord2 = 0x1104; // та жишээгээр Relay8 const word Relay1bord3 = 0x1201; // та жишээгээр Relay9 const word Relay2bord4 = 0x1302; // жишээгээр Relay14 void setup () {Serial.begin (115200); // дибаг хийх цувралыг эхлүүлэх (НҮБ -ын хувьд 9600) Wire.begin (D1, D2); // i2c автобусанд SDA = D1 ба SCL = D2 -тэй NodeMCU -тай нэгдэхийн тулд UNO} хоосон давталт () {// RelayActie (Relay4bord2, PutOn) дээрх ПХБ 2 дээрх 4 -р релийг өөрчлөх; саатал (1000); // ПХБ 2 дээрх 4 -р релийг RelayActie (Relay4bord2, PutOff) унтраах; саатал (1000); } хүчингүй RelayActie (Relay word, bayte OnOrOff) {Wire.beginTransmission (highByte (Relay))); Wire.write (lowByte (Relay)); Wire.write (OnOrOff); Wire.endTransmission (); }

Зөвлөмж болгож буй: