前面已经实现控制LED灯了,但是控制220v的家用灯怎么办,加个继电器
淘宝上的继电器模块基本上都是支持5v触发的,3.3v触发的不多(3.3v还没到货,没测试)
之前因为不知道esp8266引脚3.3v无法触发5v继电器模块导致一直没成功(据说可接三极管放大信号触发,没货所以没测试)
先记录几个概念:
1.继电器模块使用方法(一般都是,我现在所接触的):
(1)控制(触发)端,给模块供电用:
VCC:模块供电(如5v)正极接入端
GND:模块供电负极接入端
IN:模块触发输入端(真正控制触发端)
(2)被控制端,外接被控制电源端(如:220v)
NO:常闭端,继电器没触发时通电,被控制电源接负极
COM:被控制电源正极输入端
NC:常闭端,继电器触发时通电,被控制电源接负极
NO/NC端接一个即可
2.arduino uno开发板默认5v电压,本实验利用5v电压触发5v继电器模块
3.这次实验是建立在本博客前面的文章基础之上
4.用到的硬件有:
1.arduino uno开发板
2.esp8266开发板
3.5v继电器模块
4.面包板,导线等
5.先上arduino代码烧录(非Esp8266代码),Esp8266代码请参考前面文章
int button2 = 2; int button5 = 5; void setup() { Serial.begin(9600); pinMode(button2, INPUT); //设置arduino2号引脚为输入端,接收Esp8266输入3.3v电压 pinMode(button5, OUTPUT); //设置arduino5号引脚为输出端,输出5v电压控制继电器 } void loop() { int buttonstate = digitalRead(button2); //arduino读取2号引脚状态值,1为有电压,0为没有 if (buttonstate == 0) { digitalWrite(5, LOW); //如果没有电压设置5号引脚为低(0v)电压输出 }else{ digitalWrite(5, HIGH); //如果有电压设置5号引脚为高(5v)电压输出 } }
6.烧录成功后连线,拍照有点乱,还是文字吧
1.先连arduino与Esp8266
(1)给esp8266供电:3v3引脚接arduino3.3v
(2)esp8266给arduino输入电压信号:D5引脚接arduino2号引脚
(3)esp8266 GND引脚接arduino GND引脚
2.继电器连接arduino
(1)继电器IN引脚接arduino ~5 引脚
(2)继电器GND引脚接arduino GND引脚
(3)继电器VCC引脚接arduino 5v电源引脚
3.继电器被控制电源接入保证COM端接入正极,NC或NO端任选一个,串联上LED灯即可(220v?先用5v的测试一下吧)
4.arduino通电(有点废话),连接完成
7.打开小程序连接MQTT服务器试试吧,成功?!!!
8.本人纯属小白,大佬勿喷,记录学习历程。
推荐个学习arduino开发板学习b站视频链接(纯小白型):https://www.bilibili.com/video/av52628485?p=1