那啥,arduino的io是可以配置上下拉的,你可以试下把input改成input_pulldown
或者你外部配置一个下拉电阻也是可以的
这里用的继电器模块,大家可以换成更加可靠的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状态下是可以正常使用的
[修改于 5年0个月前 - 2020/01/03 01:14:31]
那啥,arduino的io是可以配置上下拉的,你可以试下把input改成input_pulldown
或者你外部配置一个下拉电阻也是可以的
阴阳怪气的人(敏感了哦。你做的是导弹吧?被抓罪加一等!)
真实想法(很早以前就想过电路控制开伞的合法体育用品火箭玩具。可惜没接触到arduino,而且没有编程基础。现在楼主做了,我支持你!)
阴阳怪气的人(敏感了哦。你做的是导弹吧?被抓罪加一等!)真实想法(很早以前就想过电路控制开伞的合法体...
想多了吧,坛子里做电控开伞的多了,x宝甚至都能买到现成航电
引用OliverKung发表于1楼的内容那啥,arduino的io是可以配置上下拉的,你可以试下把input改成input_pulldown...
这样啊。我试一下/滑稽
其实可以加一个加速度传感器和气压计更精确判断开伞时间的,还能输出更多记录数据。对于Arduino这种傻瓜平台应该不难。看过人家搞得都很完善的。
emmmm这个一堆三极管都能搞定吧,我今晚跑跑仿真试试(大概率咕咕咕)
搞了一个用三个三极管和一大堆阻容器件的,最大优势在于不用集成块,制造相对简单。今年寒假试制,出计算器,出套件~
Arduino只实现这点功能是不是大材小用了
建议:加个BMP280测测气压,加个MPU6050+卡尔曼滤波获得仰角开伞顺便测一下加速度,加个SD模块保存数据,就可以估计射高,也就多十几块钱,占不了什么体积。
正版板子和国产板子我目前使用看来是没什么区别的,除了我买到的要选择old Bootloader...
200字以内,仅用于支线交流,主线讨论请采用回复功能。