Оглавление:

Реле I2C с IDE Arduino: 5 шагов
Реле I2C с IDE Arduino: 5 шагов

Видео: Реле I2C с IDE Arduino: 5 шагов

Видео: Реле I2C с IDE Arduino: 5 шагов
Видео: Уроки Arduino #8 - управление реле 2024, Ноябрь
Anonim
Реле I2C с IDE Arduino
Реле I2C с IDE Arduino

Я заказываю хорошую релейную плату, но там не было инструкции 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 мм2
  • нельзя менять разводку нижних разъемов, когда они сложены вместе

Но все же под рукой доска.

Шаг 1. Проволока

Wirering
Wirering
Wirering
Wirering
Wirering
Wirering

На фотографиях вы можете увидеть проводку.

52Pi требует как 5 В (для реле), так и 3,3 В (микросхема I2C).

Итак, нужно 5 проводов:

  • GND к GND
  • От 5 В до 5 В
  • От 3,3 В до 3,3 В
  • SLA к SLA
  • SCL в SCL

Если вы используете Arduino UNO или другой источник 5 В, будьте осторожны с максимальным напряжением 3, 6 В от контроллера I2C! Используйте резисторы или что-то еще, чтобы понизить 5 В на выводах Arduino!

Шаг 2: Пример простого кода:

/ * Пример Arduino IDE (ESP) для релейной платы I2C.

* Автор: 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); / * начинаем передачу на адрес 10 I2C (чтобы изменить также на 11, 12 или 13) * / Wire.write (0x01); / * выбор реле 1 (из 4) на плате 10 (также 0x02, 0x03, 0x04) * / Wire.write (0xFF); / * установить реле 1 на плате 10 в положение ON. все числа> 0 будут делать это * / Wire.endTransmission (); / * прекратить передачу * / delay (3000); Wire.beginTransmission (0x10); / * * / Wire.write (0x01); Wire.write (0x00); / * установить реле 1 на плате 10 в положение OFF * / Wire.endTransmission (); / * прекратить передачу * / delay (3000); }

Шаг 3: Код проверки четырех реле

/ * эскиз Лоренса Корсте для Arduino (ESP / NodeMCU)

* Но подойдут и другие платы * www.boktorrobotica.nl * В этом skeych al 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); // выбор реле Wire.write (0xFF); // отправляем код включения FF (подойдет каждый счет от 01 до FF) Wire.endTransmission (); // прекращаем передачу Serial.write (i); Serial.println ("аан"); задержка (1000); Wire.beginTransmission (0x10); // начинаем с адреса устройства Wire.write (i); Wire.write (0x00); // Отправляем код отключения Wire.endTransmission (); // прекращаем передачу Serial.write (i); Serial.println ("uit"); задержка (1000); }}

Шаг 4: Мой проект

Мой проект
Мой проект
Мой проект
Мой проект

Я написал код для управления моими 3 жалюзи. Это можно сделать с помощью переключателей, а также с помощью приложения BLYNK, см. Изображение.

  • Одно короткое нажатие приведет к перемещению одного затвора (или остановит его, когда он перемещается).
  • Одно долгое нажатие - и все три створки открываются (или закрываются, или останавливаются).
  • Двойное давление: створки переходят в положение «дырочки».

Как видно на картинке, я также встроил датчик температуры и света.

Теперь все на хорошей базовой плате и аккуратно в коробке.

Шаг 5: вызов реле с помощью одной команды

Это полезно, если вам нужна только одна команда для активации или деактивации реле. Ниже приведена функция, которая может это сделать (с младшим и старшим байтами).

/ * набросок Лоренса Корсте для 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 PCB на PCB Возможны 4 реле. В этом скетче объединены только две PCB // PCB и реле, поэтому их можно вызывать одной командой const byte PutOn = 0xFF; // команда для включения const byte PutOff = 0x00; // команда для выключения const word 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 (слово Relay, байт OnOrOff) {Wire.beginTransmission (highByte (Relay)); Wire.write (lowByte (реле)); Wire.write (OnOrOff); Wire.endTransmission (); }

Рекомендуемые: