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

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

[复制链接]
5937|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蔡名进|  楼主 | 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精度的晶振,几天下来误差还是可以接受。


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


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

给出相应的
功能结构图





程序框图






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

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

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


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




Sheet1.PDF

344.43 KB

原理图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 | 只看该作者
提示: 该帖被管理员或版主屏蔽
5
山东电子小菜鸟| | 2017-10-31 21:02 | 只看该作者
楼主可以拍个视频 让大家都学习下

使用特权

评论回复
6
NJTECH1302| | 2017-10-31 22:02 | 只看该作者
啥也不说,点赞吧

使用特权

评论回复
7
caijie001| | 2017-11-1 09:03 | 只看该作者
山东电子小菜鸟 发表于 2017-10-31 21:02
楼主可以拍个视频 让大家都学习下

这个可以有,

使用特权

评论回复
8
蔡名进|  楼主 | 2017-11-15 14:02 | 只看该作者
山东电子小菜鸟 发表于 2017-10-31 21:02
楼主可以拍个视频 让大家都学习下

好的,等下发

使用特权

评论回复
9
蔡名进|  楼主 | 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(); //检测蓝牙指令
        }
}

使用特权

评论回复
10
蔡名进|  楼主 | 2017-11-15 15:02 | 只看该作者
用了以前的一部手机,用蓝牙串口,设定时间时,因为1602显示空间有限,
设定的时间就连续显示,图片中就是设定14点47分04秒自动升国旗奏国歌。


使用特权

评论回复
11
gujiamao12345| | 2017-11-15 15:41 | 只看该作者
不错嘛

使用特权

评论回复
12
蔡名进|  楼主 | 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) ,代码已经打包,希望我们大家在21ic中共同成长,向各位大神学习!!!
拍摄的角度不好拍摄的水平很低,各位真不好意思!!!!
PS:国歌放完之后,红绳结点并未达到顶端,原因是开始的位置并非设定位置,因为升国旗前,进行了正转和反转操作,因此造成误差。
最后,自己给自己鼓掌顺利结贴。

使用特权

评论回复
13
caijie001| | 2017-11-15 18:42 | 只看该作者
不错不错

使用特权

评论回复
14
caijie001| | 2017-11-15 18:46 | 只看该作者
我已经帮你把视频放到前面了,不用看百度网盘的视频

使用特权

评论回复
15
caijie001| | 2017-11-15 18:47 | 只看该作者
旗子呢

使用特权

评论回复
16
蔡名进|  楼主 | 2017-11-22 20:46 | 只看该作者
为什么我结帖说未分配积分,积分分配失败,然后试下点击没有满意答案结帖就可以结帖,新人,很是不好意思,没能给积分给各位。

使用特权

评论回复
17
山东电子小菜鸟| | 2017-11-23 20:40 | 只看该作者
感谢楼主分享,看的出好多都是楼主亲自动手做的,非常认真,相信自己也学到了不少知识,有不少收获;
期待楼主开新贴谈谈自己的感受,与大家共勉

使用特权

评论回复
发新帖 本帖赏金 300.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

0

粉丝