这样啊。我试一下/滑稽
这里用的继电器模块,大家可以换成更加可靠的mos管
熄灯了= =、
接线方式:
5v---VCC/+
3v或者5v---开关---D4
GND---GND/-
D3---s/IN1
最终的程序很简单,很直观。直接上代码
#include "Arduino.h" #define Connect HIGH //开伞点火器接通值. #define Disconnect LOW //开伞点火器断开值. #define Parachute_ignition_switch 3 //用来定义继电器IN1口接在NANO的D3口上 void setup() { pinMode(4,OUTPUT); //将NANO上的D4口设置为输出?状态(这里有问题,请往下继续看) pinMode(Parachute_ignition_switch,OUTPUT); //设置NANO上D3口作为开关的输出口 digitalWrite(Parachute_ignition_switch,Disconnect); //将继电器初始化为断开 digitalWrite(4,LOW); } void loop() { if (digitalRead(4)==HIGH) //判断D4针脚是否为高电平,如果是执行下面的语句,不是则跳过 { delay(20); //20ms开关消抖 if (digitalRead(4)==HIGH) { delay(150000); //设置延时时间,这里设置15s digitalWrite(Parachute_ignition_switch,Connect); //接通继电器开关 } } }
编写程序时遇到了一些问题,所以在代码的第七行加入了一个大大的疑问= =
理论上这里的状态应该设置为输入,也就是INPUT
但是连接测试时发现,上电后程序立刻开始运作,过相应延时时间后继电器自动打开,即使将开关的接口断开之后同样也是这个问题(大家可以改成INPUT测试一下= =),好像单片机被赋予了力量。。针脚自己就是高电平。。。power!power!
之前是没有加Arduino.h这个库文件的,改成OUTPUT之后一样可以正常运行,加了库文件之后(input状态下)是不能正常运行的。
所以,经过分析,可能是板子(国产)或者继电器的缘故,导致电流产生问题
有条件的朋友可以用正版板子和mos管进行测试,大家一起来找出问题
排错QAQ
注:D4 INPUT状态测量下为1.22v
前面的程序在D4脚为OUTPUT状态下是可以正常使用的
[修改于 4年11个月前 - 2020/01/03 01:14:31]
引用OliverKung发表于1楼的内容那啥,arduino的io是可以配置上下拉的,你可以试下把input改成input_pulldown...
这样啊。我试一下/滑稽
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。