Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление до 65 280 реле с Arduino: расширители IO и реле

Компоненты и материалы

Программное обеспечение

О проекте

Система IO Expander позволяет управлять до 65 280 реле от одного Arduino.

Управление реле через один IO Expander

Управление до 65 280 реле с Arduino: расширители IO и реле
Один IO Expander управляет 4 платами по 16 реле (всего 64 реле)

Ключевые особенности

Необходимые детали для сборки банка реле

Схема подключения (один IO Expander)

Управление до 65 280 реле с Arduino: расширители IO и реле
IO Expander и Arduino Nano питаются от первой платы реле. Relay Expander'ы питаются от своих плат реле.

Пример кода (один IO Expander, 64 реле)

/* IO Expander - Control 64 Relays */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>
//#define SERIAL_DEBUG
#define MAX_RELAYS 64
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif
char cmd[10];

void setup() {
  Serial.begin(115200);
  #ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  swSerialEcho = &swSerial;
  #endif
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16); // Инициализация 4 банков (64/16)
  SerialCmdDone(cmd);
}

void loop() {
  static int i = 1;
  sprintf(cmd, "e%df", i); // Включить реле i
  SerialCmdDone(cmd);
  if (i++ >= MAX_RELAYS) i = 1;
  sprintf(cmd, "e%do", i); // Выключить реле i
  SerialCmdDone(cmd);
  delay(100);
  wdt_reset();
}

Несколько IO Expander'ов (распределенная сеть)

Для распределения датчиков и реле по удаленным узлам (до 4000 футов) используются IO Extender'ы и витая пара Cat5.

Управление до 65 280 реле с Arduino: расширители IO и реле
Звездообразная топология с IO Extender'ами

Схема подключения (несколько IO Expander'ов)

Управление до 65 280 реле с Arduino: расширители IO и реле
Все IO Expander'ы и Arduino питаются от первой платы реле через шину. Relay Expander'ы — от своих плат.

Пример кода (4 IO Expander'а, 64 реле)

/* IO Expander - Relay Bonanza with IO Expanders! */
#include <HardwareSerial9Bit.h>
#include "IOExpander9Bit.h"
#include <avr/wdt.h>
#define MAX_BOARDS 4
char cmd[10];

void setup() {
  Serial9Bit.begin(115200, SERIAL_9N1);
  Serial9Bit.write(0); // Перевод IO Expander'ов в 9-битный режим
  wdt_enable(WDTO_8S);
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1"); // Инициализация каждого на 1 банк (16 реле)
}

void loop() {
  static int board = 1;
  static int relay = 1;
  sprintf(cmd, "e%df", relay); // Вкл
  SerialCmdDone(board, cmd);
  if (++relay > 16) { relay = 1; if (++board > MAX_BOARDS) board = 1; }
  sprintf(cmd, "e%do", relay); // Выкл
  SerialCmdDone(board, cmd);
  delay(100);
  wdt_reset();
}

Зачем нужно столько реле? Пример: аквапоника/гидропоника

Управление до 65 280 реле с Arduino: расширители IO и реле
Автоматизация каждой грядки/растения требует огромного количества I/O

В аквапонике/гидропонике множество датчиков и исполнительных механизмов (насоса, клапаны, освещение) на каждую грядку или даже растение. IO Expander решает проблему нехватки пинов и расстояния.

Производственный процесс

  1. Управление потолочным вентилятором через Alexa: пошаговое руководство
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Arduino Power Control Center: N-FET, P-FET, реле и RTC
  4. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  5. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  6. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  7. Управление светодиодом Arduino через Cortana по Bluetooth в Windows 10
  8. ThimbleKrox: управление мышью с пальца на Arduino Micro и MPU-6050
  9. Беспроводное управление домашним освещением со смартфона через 1Sheeld
  10. Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты