【电子竞赛预热赛】+国旗升降系统
本帖最后由 liupk 于 2017-10-13 14:11 编辑主题二:国旗升降系统
基本功能:
1)实现国旗升降
2)实现可控功能,暂停,启动等
3) 实现时间日历等显示
加分项:
1)实现放国歌
2)实现国旗跟随国歌升起(国歌停止刚好到顶)
3)实现定时升降国旗xx时xx分xx秒
4)实现手机app控制国旗升降、停止(暂停时国歌也停止) 从功能分析来看需要准备的元器件大致为:主控MCU+1602液晶+esp8266WiFi模块(或者hc-05蓝牙模块)+实时时钟芯片DS1302+蜂鸣器+28BYJ步进电机+按键+其他设施
!!!不建议使用语音模块!!!因为低价格的蜂鸣器足以实现题目的要求,在电路设计中能使用价格低的绝不使用价格高的,能使用结构简单的绝不使用结构复杂的,能用软件解决的问题绝对不要去动硬件。设计电路,最大化节约成本,最大化简化电路。 本帖最后由 liupk 于 2017-10-13 14:38 编辑
如果考虑到该系统在运行过程中突然发生断电等异常,可以增加AT24C02用来保存歌曲播放的进度标志位+上升的时间+上升的高度。待回复供电后,可以从AT24C02中读取之前的数据。 赞,期待你的作品 现在升国旗这么高端了? 厉害!学习下! 修一明 发表于 2017-10-13 15:41
现在升国旗这么高端了?
liupk 发表于 2017-10-13 14:23
从功能分析来看需要准备的元器件大致为:主控MCU+1602液晶+esp8266WiFi模块(或者hc-05蓝牙模块)+实时时钟 ...
时刻叮嘱下 进度如何了 最近忙着,第二届国际第三代半导体创新创业大赛是第六届中国创新创业大赛专业赛这个比赛了, 暂时没有更新。
本人对51比较了解原本打算用51做的,但是最近着手学习了stm32,所以MCU打算用stm32也算是练练手也算是对学习成果的检测。 因为要用到手机控制硬件,在这方面我用的是esp8266WiFi模块,下面是电路图 其他的东西就很普通了,大家都很熟悉就不用上电路图了,我用的开发板上面自带了主控MCU+1602液晶+实时时钟芯片DS1302+蜂鸣器+按键这些东西,对于步进电机我以前买的有28BYJ-48,包括驱动模块也有,用的是ULN2003驱动模块,另外需要注意的是,单片机不要直接带这个步进电机,当然估计你也带不起来,一定要有驱动才行。我用过的驱动除了这个ULN2003之外,其他还有个L298N这些都可以自己焊接可以在洞洞板上面焊,没几个元器件,当然买的话,也不值几个钱。所以目前电路方面除了esp8266我其他的都有了打算网上买个安信可的或者野火的吧,这买哪个无所谓的,
本帖最后由 liupk 于 2017-10-17 16:29 编辑
做任何东西都要一步步来,首先我想先实现,显示日历的功能。这个程序我以前写过回头补充代码。另外单独实现蜂鸣器放国歌的功能,这个的话,我以前课程设计做过一个多功能音乐盒的设计,https://wenku.baidu.com/view/bfd ... 2d380eb6294dd8822be 在这个设计中我花了三天的时间才理解什么叫做音符什么叫做音调,不理解这两个的话,对于想用蜂鸣器播放音乐的话,会有困难的。在这两个单独的测试程序完成之后我会进行将这两个程序融合到一块儿,实现显示日历的同时还能播放国歌。 顶起来
顶起来
楼主很厉害啊;用到了现在很热门的物联网模块,我现在也在搞esp8266,有机会讨论一下,
盛情邀请你进我们的群里。
加入我们的大学生电子竞赛交流群!!大家有问题可以一块交流
群QQ号:515583701 caijie001 发表于 2017-10-18 21:35
顶起来
顶起来
楼主很厉害啊;用到了现在很热门的物联网模块,我现在也在搞esp8266 ...
这个群我加的很早了,当初加的时候里面还没有几个人,我很少发言而已{:lol:} 本帖最后由 liupk 于 2017-12-7 11:32 编辑
我在网上下载了这个文档根据这个文档写了music.c 和music.h这两个文件实现蜂鸣器播放音乐。编写程序之前,我们需要知道,音乐的组成,“音调”,“节拍”。比如“两只老虎,两只老虎,跑滴快。。。”其中的“两”和“快”这两个字,是音调的不同(声音频率的高低叫做音调(Pitch)也就是“:哆,瑞,咪,发,索,拉,西,多”这个东西的不同),当然仅仅只有音调的不同也是不能构成音乐的,因为还需要另外一个因素,那就是 节拍(节拍 是衡量节奏的单位,在音乐中,有一定强弱分别的一系列拍子在每隔一定时间重复出现。(也就是你这一句“两。。。。”“两这个字发音时间的长短来控制”))。最后音调(频率)加上节拍(时间长短)共同组成一个曲子。我在程序中采用了定时器的pwm输出不同的频率(音调),使用延时函数来决定蜂鸣器的响的时间的长短,另外需要注意的是:有源蜂鸣器和无源蜂鸣器的差别主要差别 有源蜂鸣器和无源蜂鸣器的根本区别是产品对输入信号的要求不一样;有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从面实出磁场交变,带动钼片振动发音。但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。而无源蜂鸣器没有内部驱动电路,有些公司和工厂称为讯响器,国标中称为声响器。无源蜂鸣器工作的理想信号方波。如果给预直流信号蜂鸣器是不响应的,因为磁路恒定,钼片不能振动发音。我们本次设计需要的是无源蜂鸣器 晚上上传相应的文档
https://jingyan.baidu.com/article/f7ff0bfc1dbd2d2e27bb1344.html
本帖最后由 liupk 于 2017-12-7 11:21 编辑
显示部分用的1602液晶,在写1602.c和1602.h这个驱动的时候,我是根据金沙滩“手把手教你学51单片机的例程”改成stm32的驱动,这里面有些需要注意的地方,数据口引脚最好设为GPIO_Mode_Out_OD;,还有就是使能端在拉高的时候要LCD1602_E= 1;delay_ms(5);
LCD1602_E= 0;
加上延时,根据你的板子加不同的延时,因为32的引脚速度太快了,比起51来说,这样是为了确保液晶的速度能跟上来
还有就是液晶不要进行忙状态检测(stm32作为主控),我也不知道为什么,欢迎大家指出来,我在进行忙状态检测的时候始终跳不出来检测的循环。(51的时候我都是忙状态检测的)
本帖最后由 liupk 于 2017-12-7 11:30 编辑
对于步进电机用的28byj-48最初的时候我使用的是延时的方法,但是最后发现,题目要求是电机和蜂鸣器“一起”工作,没办法,只好又把电机改为中断的工作方式,这个电机的驱动也是根据金沙滩的51单片机移植过来的
对于日历的显示,我是本来打算用的ds1302外设的,但是后来发现,原来stm32自带rtc时钟,完全不需要ds1302了,我在网上找到了正点原子的 实验15 RTC实验这个教程改写了rtc.c和rtc.h这个驱动文件。
1、STM32的实时时钟(RTC)是一个独立的定时器!
2、RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位火从待机模式唤醒后RTC的设置和时间维持不变。
按键驱动是根据野火的stm32教程里面的方法改写的外部中断实现按键,exti.c和exti.h驱动
程序的架构模板是根据正点原子的架构来的,硬件是基于普中科技的开发板来的,晚上我看看能不能把女朋友的国旗台借过来,她是用51做的,不知道做好没有{:tongue:}
页:
[1]
2