資料介紹
描述
使用 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次下載 | 免費
評論
查看更多