那啥,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状态下是可以正常使用的
[修改于 4年11个月前 - 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...
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。