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

Arduino 与 NeoPixel 光耦:单引脚高效控制多路继电器

核心创意

利用 WS2812B (NeoPixel) 可寻址 LED 与光敏电阻 (LDR) 组合成**DIY 光耦**,将单个 Arduino 数字输出引脚扩展为多路隔离控制通道。每个 NeoPixel 对应一个 LDR,LDR 串联 27 kΩ 电阻驱动 5V 继电器模块。一条 5m/300 灯珠灯带理论上可控制 300 路继电器,仅占用 1 个 MCU 引脚。

硬件清单

组件数量备注
WS2812B 灯带 (5V, 60 LED/m, 5m/卷)1 段 (取 10 灯)本项目仅使用前 4 灯
光敏电阻 (LDR/光变电阻)4与 NeoPixel 一一对应
27 kΩ 电阻4LDR 分压限流
5V 4 路继电器模块1含光耦隔离、飞轮二极管
Arduino UNO / NodeMCU ESP321演示用 ESP32,UNO 同理
5V 电源 (USB 适配器/移动电源)1同时供电 MCU、灯带、继电器
深灰泡沫板 + 黑色胶带适量制作光学隔离腔,防串光

DIY 光耦制作步骤

  1. 从灯带剪下 10 颗 LED 短段,保留焊盘
  2. 在泡沫板上按 LED 间距打孔,插入 LDR,使每个 LDR 正对一颗 LED
  3. 用黑色胶带封装,确保无环境光干扰、无相邻 LED 串扰
  4. 将 LDR 引脚焊接到排针/面包板,串联 27 kΩ 电阻接 5V,中点接继电器模块输入
  5. NeoPixel 供电 5V,数据线接 MCU GPIO (演示为 ESP32 GPIO21)

关键点:软件将 LED 亮度设为极低 (RGB=15,15,15),仅够触发 LDR,避免串扰与功耗。

电路原理图

Fritzing 源文件 (.fzz) 与导出图片见附件。核心连接:

软件实现

核心控制函数

void ControlRelais(int RelaisNo, bool RelaisState) {
  // RelaisNo 对应 NeoPixel 索引 (1-4)
  // 亮度 15/255 ≈ 6%,足以触发 LDR 且无串扰
  strip.setPixelColor(RelaisNo, RelaisState*15, RelaisState*15, RelaisState*15);
  strip.show();
  Serial.print(" RelaisNo "); Serial.print(RelaisNo);
  Serial.print(" = "); Serial.println(RelaisState);
}

演示逻辑 (loop)

完整草图见项目代码区,基于 Adafruit_NeoPixel 库,兼容 UNO/ESP32/ESP8266 等。

应用场景与扩展

局限与改进

视频演示

项目附带视频展示 4 路继电器随灯带模式动作,灯泡交替点亮。

制造工艺

  1. Satellite CCRMA 套件:构建传感器驱动的音频效果器
  2. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  3. Arduino 飞行模拟器 2020 实体开关面板
  4. 互动陀螺仪 LED 显示:NeoPixel Ring + Arduino Pro Mini
  5. 智能窗帘:基于Arduino与太阳能的自动光控系统
  6. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  7. 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
  8. Arduino + Android 蓝牙控制 Roomba Create 2 扫地机器人完整指南
  9. 从零构建智能 Arduino 四足机器人:完整指南
  10. Arduino + MPU6050 姿态控制舵机:SG90 与 MG996R 精准跟随实战
  11. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  12. Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示