这样啊。我试一下/滑稽
这里用的继电器模块,大家可以换成更加可靠的mos管
熄灯了= =、
接线方式:
5v---VCC/+
3v或者5v---开关---D4
GND---GND/-
D3---s/IN1
最终的程序很简单,很直观。直接上代码
Other#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状态下是可以正常使用的
[修改于 5年5个月前 - 2020/01/03 01:14:31]
引用OliverKung发表于1楼的内容那啥,arduino的io是可以配置上下拉的,你可以试下把input改成input_pulldown...
这样啊。我试一下/滑稽
200字以内,仅用于支线交流,主线讨论请采用回复功能。