目录
一、方案流程及技术规格书设计
二、系统硬件电路设计
三、软件编写及调试
四、系统调试测试与分析
前言
随着时代的进步,人们对生活质量的要求也在不断提升,因此,51单片机七彩音乐喷泉系统应运而生,它不仅可以满足人们对舒适环境的追求,而且还可以实现智能化、自动化的户外设施,因此从受到人们的喜欢。本文提出的用步进电机控制操作,更简洁方便。
系统采用单片机STM32F103RCT6为控制核心,由模数转换器ADC0832检测模块把音频信号转换成数字信号输入给单片机,经处理后控制电机驱动水泵开关闭合,当识别到声信号较弱时,步进电机驱动水泵开口变大,使水流喷射高度减低;当识别到声信号较强时,步进电机驱动水泵开口变小,使水流喷射高度提高。音乐喷泉在喷射时装有多个LED灯泡,使音乐喷泉视觉效果得到显著提升,提高用户的舒适体验。
喷泉能根据音乐进程进行动态喷射,LED发光灯泡能根据音乐效果进行颜色变换闪烁,步进电机能根据模数转换器采样值驱动水泵开关及闭合。
软件工具准备
软件:
电路设计:protel99 se(up主使用版本) 或者其他版本,或者其他电路设计软件;
单片机开发:Keil5;
调试测试:串口调试助手,逻辑分析仪等;
工具:
电路焊接:电烙铁,SMT(有条件的);
调试:
万用表、示波器(基础入门即可,可以白嫖学校或者公司)USB转串口工具、仿真器;
一、方案流程及技术规格书设计
方案流程设计
技术规格书设计
本课题是基于51单片机七彩音乐喷泉设计,系统包括硬件系统的实现;软件系统的实现。提供硬件系统实现的原理图,采用汇编语言或C51完成软件的开发,并完成系统的调试。本系统采用 51系列单片机开发平台。
本系统采用 51系列单片机开发平台。
二、系统硬件电路设计
七彩音乐喷泉由51单片机AT89C51作为主控部件,外围设备有串口、步进电机、LED等接口及部件。采用51系列单片机的并行I/O接口对8个发光二极管进行控制,采用步进电机控制水泵闭合状态,8个发光二极管显示音乐状态,并根据实际AD采集数据通过ADC0832芯片实现调节步进电机转动角度,步进电机驱动水泵开关的功能;可以通过设置音频使得8个发光二极管按照指定的规则工作。该系统模块要求性能稳定,方便操作和设置。
本系统采用AT89C51单片机做中央控制芯片,模块组成分为ADC模数转换模块,步进电机驱动模块和发光二极管模块,ADC模数转换模块型号为ADC0832,步进电机模块型号为28BYJ4+ULN2003驱动板;用ADC0832模数转换芯片检测音乐信号幅度。ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。其提供的音频AD转换技术,是实现设计音乐喷泉的基础。
单片机AT89C51通过ADC实现模拟信号转数字信号读取ADC0832芯片解析的音频信号后,根据AD转换值控制八个发光二极管规律闪烁,同时驱动步进电机转动,以模拟实现控制水泵闭合程度,在水压强度一定情况下实现控制水柱高低变化。
集成开发环境:Keil uVision5是一款专业实用的c语言软件开发系统,提供编译器、编译器、调试跟踪和包管理器功能。用户可以利用观察窗口同时进行对多个重要全局变量进行实时的查看,以此用户可以在最短的时间内发现问题。
2.1微处理控制电路
系统采用STM32F103C8T6单片机。LQFP48封装,STM32F103是ARM系列单片机,电路图如图所示:
图中VCC3.3供电电压3.3V。R12、C19复位电路,C20、C101、C102滤波作用,J6是仿真烧录口。
单片机IO口连接介绍:
PB0-PB2(18-20脚):LCD数据口。
PB3-PB7(39-43脚):LCD数据口。
PB8-PB9(45-46脚):LCD数据口。
PB10-PB11(21-22脚):LCD数据口。
PB12-PB15(25-28脚):LCD数据口。
PC13-PC14:LCD控制。
PA8-PA9:LCD控制。
PA7:LCD背光。
PA0-PA2:按键。
PA3:光敏电阻输入。
PA4:蜂鸣器控制。
PA5:LED灯控制。
PA6:DHT11温湿度控制。
2.2 发光电路设计
发光模块设计为独立模块。发光模块的基本应用电路由三极管和电阻组成。主控MCU STM32F103通过控制IO口电平高低,给特殊功能寄存器赋值对应参数,控制周期和占空比使得发光管可以输出我们想要的颜色,从00H〜FFH。TEMP6000发光模块电路如图所示。
三极管驱动电路,其模块外接有信号采集、放大和处理电路,所以和单片机接口比较简单。设计采用3个LED和单片机IO口一对一连接。在音频识别下,由单片机控制三个颜色的发光模块,实现发光模块随音乐律动。
2.3 LCD显示电路
LCD1602液晶显示电路如图:
LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。
2.4按键电路
设计按键部分使用了4个机械按键,K1-K4四个IO口电平被单片机实时检测,正常状态下,电平会升至较高水平,而当按键按下时,电平会降至较低。按键控制对应设备开关。电路如图:
2.5 声音输出模块电路设计
系统可通过功放进行音频输出控制,功放的开关和通讯通过AINO控制。功放设置有空闲和通讯状态。设置功放空闲时,AINO输出低电平,设置功放通讯时,AINO输出50%占空比的方波。设计可以插入耳机通过耳机播放音频。
2.6 步进电机驱动电路设计
两个ULN2003达林顿管驱动步进电机,如图3.7。在U4的1-4管脚输出特定时序的电压波形,可以使得步进电机按我们需求正转或反转,模拟音乐喷泉开关。
2.7 电源电路
电源是整个系统能源供给中心,稳定的电压是系统工作的必要条件。由于单片机和温湿度传感器都需要纹波小干扰少的电源,所以系统采用线性稳压电路。外部9V电源适配器经过7805稳压输出5V,C4输入滤波电容、C5输出滤波电容。电路如图。
单片机等3.3V供电采用ASM1117线性稳压电路,电路如图。
三、软件编写及调试
3.1主程序设计
主控单片机为STM32F103FRT6,单片机识别音频信号输入,按键信号,LCD1602输出显示,步进电机输出转动步数。
工作时,程序先进行初始化工作。然后单片机接收音频信号,控制步进电机、LCD1602液晶显示。系统流程图。
3.2 LCD显示程序设计
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔 起到了字符间距和行间距的作用。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,其地址和屏幕的对应关系如下表4.1地址和屏幕对应关系:
显示位置 | 1 | 2 | 3 | 4 | 5 | 6 | … | 40 | |
DDRAM 地址 | 第一行 | 00H | 01H | 02H | 03H | 04H | 05H | … | 27H |
第二行 | 40H | 41H | 42H | 43H | 44H | 45H | … | 67H |
以下是清屏指令,如表:
指令功能 | RS | RW | D7 | D6 | D5 | D3 | D2 | D1 | D0 |
清屏 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
与液晶显示器进行通讯,首先要具备写入和写入的功能,图是写LCD命令和数据流程图。
3.3 步进电机驱动程序设计
使用4相8拍步进电机,它的工作原理为:电机按照一定的电流循环运行,从A开始,依次为AB、B、BC、C、CD、D、DA,最后回到DA开始,依次为C、BC、B、AB。转速的快慢是由输出脉冲频率决定。
步进电机代码:
/*输出脉冲驱动*/
unsigned char MotorCtr(void)
{
if (stop_flag==1) //停止转动
{
P24 = 1;
P25 = 1;
P26 = 1;
P17 = 1;
case 0: //0 ,(A 相)
P22 = 1;
P21 = 0;
P20 = 0;
P10 = 0;
break;
case 1: //0、1, (AB 相)
P22 = 1;
P21 = 1;
P20 = 0;
P10 = 0;
break;
case 2: //1,(B 相)
P22 = 0;
P21 = 1;
P20 = 0;
P10 = 0;
break;
case 3: //1、2 , (BC 相)
P22 = 0;
P21 = 1;
P20 = 1;
P10 = 0;
break;
case 4: //2, (C 相)
P22 = 0;
P21 = 0;
P20 = 1;
P10 = 0;
break;
case 5: //2、3, (CD 相)
P22 = 0;
P21 = 0;
P20 = 1;
P10 = 1;
break;
case 6: //3, (D 相)
P22 = 0;
P21 = 0;
P20 = 0;
P10 = 1; break;
case 7: //3、0, (DA 相)
P22 = 1;
P21 = 0;
P20 = 1;
P10 = 1;
}
如果(turn==0),则控制转动方向,从0-正转到1-反转,以实现最佳效果。
{
step_index++; //正转时序
if (step_index>7)
step_index=0;
}
else
{
step_index--;//反转时序
if (step_index<0)
step_index=7;
}
}
3.4发光管模块程序设计
二极管通过单片机的控制,将电子和空穴结合,并释放出可见的光。这些二极管既可安装到电路和仪表上,也可以被用于文本和图形的显示。其中,砷化镓二极管会产生鲜红的光,磷化镓二极管会产生碧绿的光,碳化硅二极管会产生金黄的光,氮化镓二极管会产生金色的光。由于其物理特征,有机合成发光二极管OLED与无机化学发光二极管LED可以有效地区别开来,具体可参见图。
LED从一开始的应用,就是作为一种指示性的装置,它不仅可以作为仪器仪表的亮度,还可以作为交通信号灯的亮度,甚至是汽车的亮度。后来将二极管从一种颜色发展成多个颜色的微型二极管,可以排列形成在显示领域。微尺寸的发光二极管拥有独特的自发光表现能力,这使得它们的表现能力远远超过了传统的有机发光二极管(Organic Light Emitting DiodeOLED),并且它们的使用寿命更加持久,更加耐用。
四、系统调试测试与分析
4.1电路仿真
首先采用protues仿真软件的进行调试与仿真,再进行对实物硬件的仿真器调试,在采用protues软件仿真进行仿真调试时,用模拟硬件电路在软件中进行搭建。
1刚开始运行图5.1,表示pump init。
2. 初始化完成后的仿真如图5.2,显示Fountain ON,时长00:00 MUSIC。
3.长按ENTER按键切换为关音乐喷泉状态。
4. 三个发光管随音乐而律动。
4.2硬件电路焊接
用电烙铁将单片机、LED灯、液晶显示及电容、蜂鸣器、按键等器件焊接在电路板上。
4.2系统调试
板子单片机通过电脑连接仿真器,烧入软件进单片机,上电液晶显示初始化pumpinit。
音乐控制喷泉。
点击机械按键控制关,进入关模式。
按下遥控器按键时,步进电机驱动音乐喷泉开启。
按下遥控器按键时,设定时间。
按下遥控器按键时,设定定时时间。