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

Управление сотнями реле через IO Expander: Внешняя защёлка для синхронного переключения

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

IO Expander 2 шт.
Relay Expander 2 шт.
Плата 16 реле 2 шт.
Arduino Nano R3 1 шт.

О проекте

Нужно управлять и синхронизировать сотни реле одновременно? Подключите Arduino, ESP8266, Raspberry Pi, ПК или Mac к IO Expander с Relay Expanders и используйте функцию External Latching (внешняя защёлка).

Это позволяет передать новые состояния реле в компактном битовом формате, готовых к защёлке. Затем одним импульсом на GPIO (от MCU или от выхода IO Expander) все защёлкнутые данные применяются одновременно.

См. также проект «Control Up to 65,280 Relays with Your Arduino».

Настройка External Latching

Простая командная структура IO Expander. Пример для одной платы 16 реле:

>g4o1;g10n;el10
ok
ok
10
>

Команды:

Теперь включаем реле и защёлкиваем:

>e1o;e10o;e16o
ok
ok
ok
>g4o0,1
ok
>

Масштабирование: 2 IO Expander, 2 Relay Expander, 2 платы по 16 реле

Два IO Expander соединяются по многопунктному 9-битному протоколу (до 255 устройств). Управление с Arduino Nano.

Схема External Latching

На диаграмме показано подключение: Arduino → Serial9Bit → 2× IO Expander → 2× Relay Expander → 2× 16-релейные платы. GPIO4 первого IO Expander даёт импульс защёлки на вход LATCH обоих Relay Expander.

Код для Arduino Nano

/* IO Expander - Relay Expander External Latching */
#include <HardwareSerial9Bit.h>
#include "IOExpander9Bit.h"
#include <avr/wdt.h>

#define MAX_BOARDS 2

void setup() {
  Serial9Bit.begin(115200, SERIAL_9N1);
  Serial9Bit.write(0); // Режим 9-бит
  wdt_enable(WDTO_8S);

  for (uint8_t board = 1; board <= MAX_BOARDS; board++)
    SerialCmdDone(board, "eb1"); // Enable relay expander

  SerialCmdDone(1, "g4o1;g10n;el10"); // Настройка защёлки на плате 1
  SerialCmdDone(2, "g10n;el10");      // На плате 2 только защёлка
}

void loop() {
  static uint16_t i = 0;
  uint8_t r[2];

  // Плата 1: инкрементирующий паттерн
  r[0] = ~(uint8_t)(i >> 8);
  r[1] = ~(uint8_t)i++;
  SerialWriteRelayExpander(1, r, 2);
  delay(50);

  // Плата 2: инвертированный паттерн
  r[0] = ~r[0];
  r[1] = ~r[1];
  SerialWriteRelayExpander(2, r, 2);
  delay(50);

  // Синхронная защёлка всех реле
  SerialCmdDone(1, "g4o0,1");

  wdt_reset();
}

Демонстрация работы

Видео: Relay Expander Latching in Action.

Получите IO Expander и начните строить свою систему!

Схема

Электрическая схема подключения двух IO Expander, двух Relay Expander и двух 16-релейных плат к Arduino Nano.

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

  1. Робототехника XXI века: распределенные системы, телеприсутствие и космическая разведка
  2. Мастерство SaaS: стратегии сохранения контроля при использовании облака
  3. Почему складам следует внедрять IoT сейчас: повышение эффективности, точности и безопасности
  4. Электрические щиты управления: основы проектирования для безопасности и ROI
  5. Повышение эффективности с отзывчивым роботом в Energy Dynamics
  6. Верните контроль за циклом покупки: проверенные стратегии для производителей
  7. Электронный блок управления (ECU) — «мозг» современного автомобиля
  8. Автомобильные реле: назначение, виды, принципиальная схема и диагностика
  9. Реле общего назначения: история, классификация, виды, принцип работы и применение
  10. Первое автострахование: пошаговое руководство для новичков