5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: 白小淘
打印 上一主题 下一主题

【化学博士学种田】一起来DIY可编程航灯(已经写完,所有制造文件已公布)

[复制链接]
41
 楼主| 发表于 2015-4-10 23:16 | 只看该作者
kenhuyang 发表于 2015-4-10 22:52
http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=1013486&extra=
看看我的帖子。

好的,我明天研究一下,今天在布线……PCB的尺寸打算做到2×3左右


欢迎继续阅读楼主其他信息

42
发表于 2015-4-10 23:48 | 只看该作者
不懂帮顶
来自苹果客户端来自苹果客户端
43
发表于 2015-4-11 00:04 | 只看该作者
期待,楼主神人也
44
 楼主| 发表于 2015-4-11 21:22 | 只看该作者
闪烁模块暂时停一下,因为40楼说延时不好……
PCB文件会在我的样品测试无误后公布,啥都不留,谁想做都可以,有技术,任性!
45
 楼主| 发表于 2015-4-11 22:20 | 只看该作者
kenhuyang 发表于 2015-4-10 22:52
http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=1013486&extra=
看看我的帖子。

你的好复杂,表示看不懂……

46
 楼主| 发表于 2015-4-11 22:21 | 只看该作者
kenhuyang 发表于 2015-4-10 22:52
http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=1013486&extra=
看看我的帖子。

好像看到了串口通信的代码?能不能简单的讲一下原理?

47
发表于 2015-4-11 22:47 | 只看该作者
楼主高人啊,论坛里都是高手,期待!
48
发表于 2015-4-11 23:21 | 只看该作者
本帖最后由 kenhuyang 于 2015-4-11 23:24 编辑
白小淘 发表于 2015-4-11 21:22
闪烁模块暂时停一下,因为40楼说延时不好……
PCB文件会在我的样品测试无误后公布,啥都不留,谁想做都可 ...

我做了两个版本,第一版就是延时函数,这个写起来简单。但是我有的模式跑完一次要十多秒,这样切模式要等最长十多秒才可以换到下一模式,原因我说了,延时期间单片机不干活。视频里就是我的第一版,你可以明显看到延时。  后来开始改第二版,开始想用中断,这样就没延时,但是中断用到这里好像不行,不好弄中断条件。  后来这个问题一直困扰我很久,终于有一天,有灵感了。

    办法就是用的循环语句。我们知道,单片机执行一个语句是需要时间的,只不过很快我们觉察不到。延时函数实质就是让单片机执行空语句。这段时间它读不到外部信号的输入。我用for循环,在循环里让单片机不停读遥控器的信号输入,比如循环500次,由于执行语句需要时间,读完500次,其实要花几秒的时间,这就实现了延时函数。但是由于不停在读遥控信号,所以可以马上检测到控制信号,从而改变闪烁模式。你可以写入我的程序试一下,完全没延时。

   我的程序写的比较乱,解释一下:读取信号,在低信号时(脉冲小于1200),关闭灯。 检测到在中高信号之间切换一次时,(办法是检测脉冲大于1200且两次信号差值大于400),让一个变量i+1。这样高中之间切换一次时i+1.为了实现循环,进行取余运算。比如我是8种闪烁模式那么c=i%8.这样c变量就实现了从0到7循环,对应八种模式。再用case语句,每个case对应一种模式,你想要闪烁怎么写就是了。我写了八种,够用了。灯闪烁之间的延时就用for循环,你现在再看看我的程序,应该就懂了


  串口是模式改变的时候串口输出脉冲和当前的模式,方便我调试,写好了就没用了

49
 楼主| 发表于 2015-4-11 23:57 | 只看该作者
kenhuyang 发表于 2015-4-11 23:21
我做了两个版本,第一版就是延时函数,这个写起来简单。但是我有的模式跑完一次要十多秒,这样切模式要等 ...

看懂了,for用了自加,加一次就重新执行一次for,for里面读取信号然后决定是否跳转,利用执行这个的时间起到了延时的作用……高!


50
发表于 2015-4-12 00:05 | 只看该作者
白小淘 发表于 2015-4-11 23:57
看懂了,for用了自加,加一次就重新执行一次for,for里面读取信号然后决定是否跳转,利用执行这个的时间 ...

是的。完全正确

51
 楼主| 发表于 2015-4-13 18:50 | 只看该作者
顶起,刚刚去JLC下了PCB的单……
52
 楼主| 发表于 2015-4-14 18:26 | 只看该作者
今晚研究呼吸灯哦……
53
发表于 2015-4-14 18:30 | 只看该作者
回复后是否被顶起的规则至今不明,好逗……
54
 楼主| 发表于 2015-4-14 18:52 | 只看该作者
呼吸灯必须用PWM控制,貌似mega8的arduino只能在9,10,11通道输出原生的PWM,卧槽……中奖了……我的硬件10被用作读取信号,11空置,只用了9控制灯……我的多路呼吸灯啊……
55
发表于 2015-4-14 22:46 | 只看该作者
1、Arduino里有个Timer库可以实现伪多线程。但是ATmega8不知道能不能使用。
2、点亮灯的延时函数可以试试换成定时器中断。利用millis()函数试试。
3、pwm输出看看用analog口模拟一下行不。
56
 楼主| 发表于 2015-4-14 23:03 | 只看该作者
zhaoyu3517 发表于 2015-4-14 22:46
1、Arduino里有个Timer库可以实现伪多线程。但是ATmega8不知道能不能使用。
2、点亮灯的延时函数可以试试 ...

PWM输出用analog已经不行了,M8我现在用的这几个口都不支持,我刚刚用另外的方法做到了,我让他亮i毫秒,灭1000-i毫秒,然后用for循环让i一个循环加一点,呼吸的速度可以用加的那一点去控制。
我试试你说的1和2去……


57
 楼主| 发表于 2015-4-14 23:09 | 只看该作者
白小淘 发表于 2015-4-14 23:03
PWM输出用analog已经不行了,M8我现在用的这几个口都不支持,我刚刚用另外的方法做到了,我让他亮i毫秒, ...

论坛现在管的严,基本连个讨论的人都不好找了……

58
发表于 2015-4-15 09:21 | 只看该作者
去年先用51单片机制作,加四条灯带总重50多克,感觉用在四轴上太重,又和朋友制作了几种用Arduino 单片机(4克)控制的LED流水跑马灯。四轴上的四条灯带,采用普通灯带修改的,单片机、灯带、线共计25克,采用八灯自由编码控制程序,和泡泡的近似,亮的现象:先是全灭,然后依次逐个点亮,依次逐个叠加,依次逐个递减,两边靠拢后分开,两边叠加后递减,最后全亮。循环。购买的CP2102 模块 USB下载器,新款 arduino pro mini 单片机。


59
发表于 2015-4-17 09:50 | 只看该作者
用ULN2803吧,相当于8路NPN三极管,单路最大电流500mA。
来自苹果客户端来自苹果客户端
60
 楼主| 发表于 2015-4-19 14:21 | 只看该作者
全部制作完成了,PCB上的正负极再一次被我布反了,现在的板需要飞线才能用。无误的文件将在隔 壁发布,视频正在上传中……
说一下为什么版主恢复了我的楼我依然不太想在这里更新了:
如果想抓一个犯人进监狱,他会到处逃。如果想把监狱里的人放出来,他会很主动!


您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表