资料介绍
描述
使用 IO 扩展器和继电器扩展器通过键盘控制继电器。
需要使用键盘控制继电器?那么您需要带继电器扩展器的IO 扩展器。每个 IO 扩展器最多可以控制 16 个菊花链式继电器扩展器,总共 256 个继电器。然后使用连接到 IO 扩展器的键盘手动控制每个继电器。
使用FCB Maker将 7 或 8 个数字引脚转换为 1 个模拟引脚。然后连接 3x4 或 4x4 数字键盘。
接线图
注意:在上面的接线图中,IO Expander 和 Arduino Nano 由第一个继电器板供电。所有继电器扩展器都由它们所连接的继电器板供电。
输入继电器编号,然后按“#”键打开继电器。要关闭继电器,请使用“*”键。
/* IO Expander
*
* Relay Keypad
*
*/
#include
#include "IOExpander.h"
#include
//#define SERIAL_DEBUG
#define MAX_RELAYS 64
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif
char cmd[16];
char key[16] = {};
#define KEYPAD_4x3
//#define KEYPAD_4x4
#ifdef KEYPAD_4x3
#define MAX_KEYS 12
int thresholds[MAX_KEYS] = {18,329,598,1000,1183,1346,1603,1723,1833,2009,2093,2172};
char keypad[MAX_KEYS] = {'1','2','3','4','5','6','7','8','9','*','0','#'};
#endif
#ifdef KEYPAD_4x4
#define MAX_KEYS 16
int thresholds[MAX_KEYS] = {105,394,617,847,1049,1220,1357,1502,1634,1748,1840,1939,2031,2110,2177,2249};
char keypad[MAX_KEYS[ = {'1','2','3','A','4','5','6','B','7','8','9','C','*','0','#','D'};
#endif
void setup()
{
int i;
Serial.begin(115200);
#ifdef SERIAL_DEBUG
swSerial.begin(115200);
swSerialEcho = &swSerial;
swSerial.println("DEBUG");
#endif
wdt_enable(WDTO_8S);
delay(100); // Wait 100 ms for IO Expander Title
while (Serial.available()) Serial.read(); // Flush RX buffer
sprintf(cmd, "eb%d", MAX_RELAYS / 16);
SerialCmdDone(cmd);
// Configure keypad
SerialCmdDone("s2t1d;sc0,0");
Serial.print("sc");
for (i = 0; i < MAX_KEYS; i++)
{
if (i) Serial.print(",");
Serial.print(thresholds[i]);
Serial.print(","");
Serial.print(keypad[i]);
Serial.print(""");
}
SerialCmdDone(";sd100"); // Keypad debounce 100ms
}
void loop()
{
int i,relay;
char ch;
SerialCmd("s2r");
int len = strlen(key);
SerialReadString(key+len, sizeof(key)-len); // Concatinate keypad characters
SerialReadUntilDone();
for (i = 0; i < strlen(key); i++) {
ch = key[i];
if (!isdigit(ch)) {
key[i] = NULL;
if (ch == '*' || ch == '#') {
relay = atoi(key);
if (relay > 0 && relay <= MAX_RELAYS) {
Serial.print("e");
Serial.print(relay);
if (ch == '#') Serial.println("o"); // Turn on relay
else Serial.println('f'); // Turn off relay
SerialReadUntilDone(); // Wait for the '>' prompt
}
}
strcpy(key, key+i+1);
break;
}
}
wdt_reset();
delay(100);
}
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- Sonoff基本Wifi扩展器——MQTT干接点继电器
- 固态继电器和电磁继电器模块
- Arduino控制继电器(esp32+继电器)
- 树莓派控制继电器
- 继电器控制说明
- 固态继电器与普通继电器的区别
- 继电器控制实验介绍
- 继电器的使用
- 电磁继电器和固态继电器的区别
- 继电器控制电灯
- 直流继电器与交流继电器的原理与区别
- 使用单片机IO驱动继电器电路有哪些误区
- PLC与继电器控制的区别介绍 9次下载
- 频率继电器在起重机传统控制应用
- 压力继电器和压力控制器原理
- 电压继电器与电流继电器的对比 556次阅读
- 固态继电器与普通继电器的比较 1043次阅读
- 固态继电器和电磁继电器的区别 634次阅读
- 时间继电器规格及型号 时间继电器怎么调时间 1553次阅读
- 安全继电器和普通继电器区别 安全继电器应用案例 2273次阅读
- 控制继电器的结构 699次阅读
- 电磁继电器选用_电磁继电器应用 2322次阅读
- 常见的继电器有哪些 1.8w次阅读
- 微雪电子树莓派继电器扩展板 8路继电器介绍 2801次阅读
- 固态继电器原理_固态继电器的特点 6123次阅读
- 继电器怎么切换电路_继电器切换电路图解 4.7w次阅读
- 控制继电器的作用是什么 8484次阅读
- 固态继电器与普通继电器的区别 6.4w次阅读
- 直流继电器和交流继电器的区别 6.2w次阅读
- 中间继电器详解_中间继电器选型_中间继电器与一般继电器如何选择 1.3w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多