I2C Relay Met Arduino IDE: 5 стъпки
I2C Relay Met Arduino IDE: 5 стъпки
Anonim
I2C Relay Met Arduino IDE
I2C Relay Met Arduino IDE

Поръчвам хубава релейна дъска, но нямаше инструкция за ArduinoIDE, само Raspberry Pi e.o. Разбирам как да го използвам с Arduino и искам да го споделя, за да спестите това време.

Оригинален пример за RaspberryPi:

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

Хубавото е, че можете да подреждате до 4 дъски. Така че можете да използвате макс. 4 x 4 = 16 релета на една I2C шина.

Има и някои недостатъци:

  • малки терминали, не подхождат на 1 mm2 проводник
  • не можете да промените окабеляването на долните конектори, когато са подредени заедно

Но все пак удобни дъски.

Стъпка 1: Окачване

Свързване
Свързване
Свързване
Свързване
Свързване
Свързване

На снимките можете да видите окабеляването.

52Pi се нуждае от 5V (за релета) и 3.3V (I2C чип).

Така че са необходими 5 проводника:

  • GND към GND
  • 5 V до 5 V
  • 3.3 V до 3.3 V
  • SLA към SLA
  • SCL към SCL

Ако използвате Arduino UNO или друго 5 V устройство от максимум 3, 6 V от контролера I2C! Използвайте резистори или намалете 5 V от ПИН кода на Arduino!

Стъпка 2: Пример за прост код:

/* Пример за Arduino IDE (ESP) за I2C relaisboard.

* От Laurens Korste www.boktorrobotica.nl * безплатно за използване. */ #include // за I2C комуникация void setup () {// това правило не е за UNO или платки със специални I2C пинове Wire.begin (D1, D2); // присъединявам се към i2c шина със SDA = D1 и SCL = D2 за NodeMCU} void loop () {Wire.beginTransmission (0x10);/ * започнете предаване към I2C адрес 10 (за промяна също на 11, 12 или 13) */ Wire.write (0x01); / * реле за избор 1 (от 4) на борда 10 (също 0x02, 0x03, 0x04) */ Wire.write (0xFF); /* задайте реле 1 на борда 10 в положение ON. всички номера> 0 ще го направят */ Wire.endTransmission (); / * спиране на предаването */ забавяне (3000); Wire.beginTransmission (0x10); / * */ Wire.write (0x01); Wire.write (0x00); / * задайте реле 1 на борда 10 на OFF */ Wire.endTransmission (); / * спиране на предаването */ забавяне (3000); }

Стъпка 3: Тестов код с четири релета

/* скица от Laurens Korste за Arduino (ESP / NodeMCU)

* Но други платки също ще го направят * www.boktorrobotica.nl * В този ключ 4 релета ще бъдат активирани и деактивирани */ #include // за I2C комуникация void setup () {Serial.begin (115200); // започва сериен за отстраняване на грешки (9600 за UNO) Wire.begin (D1, D2); // присъединяване към i2c шина със SDA = D1 и SCL = D2 на NodeMCU няма нужда от UNO} void loop () {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); Wire.beginTransmission (0x10); // започваме с адреса на устройството Wire.write (i); Wire.write (0x00); // Изпратете кода „изключен“Wire.endTransmission (); // спиране на предаването на Serial.write (i); Serial.println ("uit"); забавяне (1000); }}

Стъпка 4: Моят проект

Моят проект
Моят проект
Моят проект
Моят проект

Написал съм код за управление на моите 3 капаци. Това може да стане с превключватели, но и с приложението BLYNK, Вижте изображението.

  • Едно кратко натискане ще започне да движи един затвор (или да го спре, когато се движи).
  • Едно продължително натискане и трите капака се отварят (или затварят или спират).
  • Двойно налягане: капаците отиват в положение "дупки".

Както може да се види на снимката, аз също интегрирах сензор за температура и светлина.

Сега всичко на добра базова печатна платка и спретнато в кутия.

Стъпка 5: Извикайте реле с една команда

Полезно е, ако имате нужда само от една команда, за да активирате или деактивирате реле. По -долу е функция, която може да направи това (с нискобайт и високобайт).

/ * скица от Laurens Korste за Arduino (ESP/NodeMCU) с I2C релейно табло * Но други платки също ще го направят * href = https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU: _EP-0099; www.boktorrobotica.nl * В тази скица релето ще се активира с едно повикване; * // #include // за I2C комуникация // Рекламиране на реле. 4 печатни платки на печатна платка Възможни са 4 релета. В тази скица само две печатни платки // печатни платки и релета са обединени, така че да могат да бъдат извикани с една команда const байт PutOn = 0xFF; // команда за включване на const байт PutOff = 0x00; // команда за изключване const дума Relay1bord1 = 0x1001; // можете да правите шансове за имената чрез пример Relay1 const word Relay2bord1 = 0x1002; // можете да поставяте шансове за имената чрез пример Relay2 const word Relay3bord1 = 0x1003; // можете да поставяте шанса за имената чрез пример Relay3 const word 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 за UNO) Wire.begin (D1, D2); // присъединяване към i2c шина със SDA = D1 и SCL = D2 на NodeMCU няма нужда от UNO} void loop () {// за превключване на реле 4 на печатна платка 2 на RelayActie (Relay4bord2, PutOn); забавяне (1000); // за изключване на реле 4 на печатна платка 2 RelayActie (Relay4bord2, PutOff); забавяне (1000); } void RelayActie (Word Relay, байт OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (реле)); Wire.write (OnOrOff); Wire.endTransmission (); }

Препоръчано: