返回列表 发新帖我要提问本帖赏金: 300.00元(功能说明)

【电子竞赛预热赛】国旗升降系统

[复制链接]
 楼主| 蔡名进 发表于 2017-10-30 19:40 | 显示全部楼层 |阅读模式
本帖最后由 caijie001 于 2017-11-28 10:49 编辑

   第一次发帖,不知道该怎么说,借助21ic提供的平台,自己利用课余时间做了国旗升降系统。
采用大家最熟悉的的52单片机,io口刚好够用,用到定时器(200ms读取DS1302时间,1602显示)还有串口(蓝牙)。
此外还用到isd4004芯片,能够录制音频,而且保真度也挺高,并且能指定播放和停止等。因此用起来录制国歌。
音频信号采用lm386进行信号放大,直接驱动0.5W的喇叭播放。
时间信息采用ds1302芯片,用法也比较简单,采用32.768KHz,+-10ppm精度的晶振,几天下来误差还是可以接受。
微信图片_20171030172957.jpg


电机采用便宜而且又很常见的DC5V-28BYJ-48 步进电机,驱动芯片采用ULN2003。
国旗杆方面,因为手头没有定滑轮,就用螺丝和螺母还有一个不知道叫做什么的东西做了个,感觉还可以。
微信图片_20171030170542.jpg


目前可以实现国旗时间,日期,星期的显示,国旗的升降和暂停,国旗升国歌同时播放。
国旗达到顶端国歌刚好停播放完全。另外还实现蓝牙遥控国旗暂停,升降,同时也具有国旗升国歌同时播放,国旗达到顶端,国歌刚好播完。
最后一个功能是定时升降的,因为IO口基本没有了,所以就没有从硬件上考虑增加,想通过蓝牙进行定时时间设置,不过最近有单时间比较忙也没有搞。

给出相应的
功能结构图



1509353463(1).jpg


程序框图
1509353640(1).jpg






当时想用直接用AD画图之后打板来做,但是看到实验室啥都没有,就用洞洞板自己焊,而且还有师兄留下的isd4004模块。

附件给出AD的原理图,初学者,画的真的很一般,见谅。

最后给出用洞洞板焊接的实物图。
微信图片_20171030170604.jpg 微信图片_20171030170525.jpg 微信图片_20171030170550.jpg 微信图片_20171030170558.jpg
老实说,这算是自己第一次DIY制作的小东西,感觉学到挺多东西,哈哈


杰杰帮你放视频:让网友们不用看百度网盘的视频
作者的代码已经打包好,在12
杰杰帮忙放到前面来
国旗升降系统.zip (134.75 KB, 下载次数: 13)




Sheet1.PDF

344.43 KB, 下载次数: 19

原理图PDF

打赏榜单

21ic小喇叭 打赏了 300.00 元 2017-12-18
理由:电子竞赛活动三等奖

评分

参与人数 1威望 +10 收起 理由
caijie001 + 10 赞一个!

查看全部评分

caijie001 发表于 2017-10-30 20:35 | 显示全部楼层
66666厉害啊
21ic小喇叭 发表于 2017-10-31 08:51 | 显示全部楼层
做的不错啊,期待后续分享哦~
IRD2017 发表于 2017-10-31 17:33 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
山东电子小菜鸟 发表于 2017-10-31 21:02 | 显示全部楼层
楼主可以拍个视频 让大家都学习下
NJTECH1302 发表于 2017-10-31 22:02 | 显示全部楼层
啥也不说,点赞吧
caijie001 发表于 2017-11-1 09:03 | 显示全部楼层
山东电子小菜鸟 发表于 2017-10-31 21:02
楼主可以拍个视频 让大家都学习下

这个可以有,
 楼主| 蔡名进 发表于 2017-11-15 14:02 | 显示全部楼层
山东电子小菜鸟 发表于 2017-10-31 21:02
楼主可以拍个视频 让大家都学习下

好的,等下发
 楼主| 蔡名进 发表于 2017-11-15 14:17 | 显示全部楼层
今天终于把最后一个时间设定的做完了,原本打算用蓝牙发送数据得,自己尝试了很久,发现有一个点自己没能突破,最后采用了按键定时的方式。由于按键有限,Isd4004的录制和播放按键不能复用,因此利用蓝牙进行蓝牙的开始设置和退出设置。
这是主函数
void main()
{
                P2=0xf0;// 让电机停止,不给高电平,否则电机会发热                 
                Mplaymode=0;
                InitISD();
                stoppd();
                SetHigRes();
                Delay_xms(50);//等待系统稳定
                LCD_init();   //LCD初始化
                LCD_clear();  //清屏   
                // ds1302_init();  //DS1302初始化
                Delay_xms(10);
                //ds1302_write_time(); //写入初始值
                Init();
                Init_timer2(); //定时器2初始化
       
          

        while(1)
        {  
                SingleRecord();          //isd4004录制播放遍历
                 Display();           //1602显示时间信息        我把判断定时时间放在这个函数里面
                 stop_satr();  //步进电机启动停止遍历
        //        MultiRecord();
                  rise();          //国旗升起扫描
                check_blue(); //检测蓝牙指令
        }
}
 楼主| 蔡名进 发表于 2017-11-15 15:02 | 显示全部楼层
cmj1.jpg cmj.jpg 用了以前的一部手机,用蓝牙串口,设定时间时,因为1602显示空间有限,
设定的时间就连续显示,图片中就是设定14点47分04秒自动升国旗奏国歌。


gujiamao12345 发表于 2017-11-15 15:41 | 显示全部楼层
不错嘛
 楼主| 蔡名进 发表于 2017-11-15 16:45 | 显示全部楼层
国旗升的过程中,可以随时控制停止,百度云视频:http://pan.baidu.com/s/1dFEmThf
定时设置国旗升起并伴奏:http://pan.baidu.com/s/1c1YXzvM
最后一个调试视频:http://pan.baidu.com/s/1mhRV7Yw
当然,最重要的自然是开源 国旗升降系统.zip (134.75 KB, 下载次数: 8) ,代码已经打包,希望我们大家在21ic中共同成长,向各位大神学习!!!
拍摄的角度不好拍摄的水平很低,各位真不好意思!!!!
PS:国歌放完之后,红绳结点并未达到顶端,原因是开始的位置并非设定位置,因为升国旗前,进行了正转和反转操作,因此造成误差。
最后,自己给自己鼓掌顺利结贴。

caijie001 发表于 2017-11-15 18:42 | 显示全部楼层
不错不错
caijie001 发表于 2017-11-15 18:46 | 显示全部楼层
我已经帮你把视频放到前面了,不用看百度网盘的视频
caijie001 发表于 2017-11-15 18:47 | 显示全部楼层
旗子呢
 楼主| 蔡名进 发表于 2017-11-22 20:46 | 显示全部楼层
为什么我结帖说未分配积分,积分分配失败,然后试下点击没有满意答案结帖就可以结帖,新人,很是不好意思,没能给积分给各位。
山东电子小菜鸟 发表于 2017-11-23 20:40 | 显示全部楼层
感谢楼主分享,看的出好多都是楼主亲自动手做的,非常认真,相信自己也学到了不少知识,有不少收获;
期待楼主开新贴谈谈自己的感受,与大家共勉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部