亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

元器件与物料

元器件 数量 备注
Arduino Nano R3 1 主控制器
IO 扩展板 (IO Expander) 1 核心扩展模块
继电器扩展板 (Relay Expander) 1 每块 16 路继电器
IO 延长板 (IO Extender) 1 长距离串联用
Arduino 16 路继电器板 1 廉价现成模块

软件与在线服务

项目简介

使用 IO 扩展板与继电器扩展板,可控制高达 65,280 路继电器。单个 IO 扩展板可串联 16 块继电器扩展板 (共 256 路),再将 255 个 IO 扩展板组网,即可实现 65,280 路选择性控制。

单个 IO 扩展板控制继电器

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

核心特性

搭建继电器组所需部件

接线图

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

注意: 上图中 IO 扩展板与 Arduino Nano 由第一块继电器板供电。所有继电器扩展板由其连接的继电器板供电。

示例代码:控制 64 路继电器 (单扩展板)

/* IO Expander - Control 64 Relays */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>

#define MAX_RELAYS 64
char cmd[10];

void setup() {
  Serial.begin(115200);
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16); // 配置 4 块继电器板
  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 扩展板协同控制 (星型/总线拓扑)

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

若需将 IO 扩展板分离至 4000 英尺 (约 1.2 km),使用 IO 延长板 + 标准 Cat5 网线。

多扩展板接线图

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

注意: 所有 IO 扩展板与 Arduino Nano 通过串口总线由第一块继电器板供电。继电器扩展板各自由对应继电器板供电。

示例代码:4 块扩展板控制 64 路继电器

/* IO Expander - Relay Bonanza with Multiple 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); // 设置 9-bit 模式
  wdt_enable(WDTO_8S);
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1"); // 每板配置 1 个继电器扩展板
}

void loop() {
  static int board = 1, 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();
}

为什么需要控制这么多继电器?

典型应用:水培/鱼菜共生系统。每个种植床甚至单株植物都需要独立的传感器与执行器自动化控制,极度依赖大规模 IO 扩展能力。

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

立即获取 IO 扩展板,构建您的大规模控制系统!

代码

原理图

Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案 Arduino 控制 65,280 路继电器:可扩展 IO 与继电器扩展方案

制造工艺

  1. 用 Alexa 控制吊扇:分步指南
  2. 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
  3. Arduino 电源控制中心:N-FET/P-FET/继电器/RTC 多功能扩展板
  4. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  5. DIY Arduino 加湿器控制器:继电器安全控制高压电路
  6. Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
  7. Windows 10 Cortana 蓝牙控制 Arduino LED:UWP 应用开发全流程
  8. ThimbleKrox:基于 Arduino Micro 与 MPU-6050 的指戴式鼠标控制器
  9. 1Sheeld + Arduino 手机无线控制家庭灯光系统
  10. DIY Arduino 蟑螂控制系统 —— 30 美元以内自制指南
  11. 使用 Arduino Uno 和蓝牙实现遥控小车:分步指南
  12. Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试