基于AVR单片机帆板控制系统的设计
扫描二维码
随时随地手机看文章
设计任务
设计并制作一个帆板控制系统,通过对风扇转速的控制,调节风力大小,改变帆板转角θ,如图1所示。帆板形式及具体制作尺寸如图2所示。
图1 帆板控制系统示意图
图2 帆板制作尺寸图
根据题目要求,设计任务要实现风扇和帆板之间的距离在一定范围内变动时,在规定的时间内,自动调节帆板达到通过键盘设定的预置转角(下文简称:预置参数),同时对控制过程中的相关数据进行实时处理并显示。
设计思路:以AVR单片机为核心,采用闭环控制,角度传感器检测帆板的实际转动角度,单片机定时采集,与帆板预置参数进行比较,生成调控风扇电机的PWM信号;用LCD屏显示预置参数、帆板的转动角度、调节用的PWM信号及调控过程完成的时间等内容。
系统硬件设计与实现
硬件概述
系统由以下几个基本模块组成:电源模块、单片机控制模块、电机驱动模块、显示与声光报警模块、键盘模块和角度检测模块。整个系统框图如图3所示。
图3 系统框图
(1)控制模块:采用AVR单片机控制;
(2)角度检测模块:采用ADXL345角度传感器;
(3)风扇类型:采用轴流式的电吹风风扇;
(4)电机驱动方式:采用L298电机驱动芯片;
(5)显示模块:用LCD1602液晶模块进行显示;
(6)电源模块:采用LM2576开关型降压稳压芯片。
角度检测电路
角度传感器选用三轴加速度计ADXL345。其输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。对ADXL345的数据累计采样50次,取其平均值作为结果,这种方法成功的解决了风帆摆动不稳的难题。单片机依据该值大小与预置参数运算,最后生成调节风扇电机转速的PWM信号。
ADXL345与单片机采用I2C模式通信,电路如图4所示。角度检测电路由IC1、IC3、R15、R16组成。
图4 角度检测电路
驱动电路
电机驱动模块L298内部包含4通道逻辑驱动电路,是一种为二相和四相电机配备的专用驱动器,内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动双电机。电机驱动接线电路如图5所示。
图5 电机驱动电路
在电路中,风扇电机接在L298的OUTl、OUT2输出端口上,控制电机正反转的两个输入引脚,7脚通过电阻R4接在电源上,9脚直接接地。控制风扇电机转速的PWM信号,由单片机的PD5引脚输出,通过隔离光耦IC5接在使能控制端8引脚上,L298输出的通断时间受控于PWM的变化,实现了单片机调节风扇电机的转速大小,最终控制了吹动帆板转动的风力强弱。电路中的D1~D4起续流二极管作用。
声光报警和按键电路
系统中设计了声光报警电路,见图6所示。当帆板旋转到预置参数时,由单片机控制其工作,并持续5秒钟报警。它由电阻R5、R18、发光二极管D5、三极管Q1和扬声器LS1组成。当单片机的PA5引脚输出低电平信号时,二极管发光,蜂鸣器发出声音,实现声光报警。
图6 声光报警、键盘电路
系统中的按键功能是控制风帆电机的运动和设定帆板的转角参数值。各键功能如下:
S1:起动键,点动后,电机起动;
S2:停止键,点动后,电机停止;
S3:确认键,首次操作,允许设定预置参数,再次操作,退出,并存储参数(预置参数存在单片机的EEPROM中);
S4:加1键,点动1次,预置参数个位数值加1;
S5:加1键,点动1次,预置参数十位数值加1。
电源
LM2576开关型稳压器的效率比三端线性稳压器要高的多,有优异的线性和负载调整能力,其内部含有频率补偿器和一个固定频率振荡器,可将外部元件数目减到最少且使用方便。电源电路如图7所示。
图7 电源电路
为了解决帆板在与风机近距离且小角度转动时,其稳定性不易精确控制的难题,我们采用可自动跳变的双电源,即供给L298芯片的主电源VCC_K有9V和20V两种电压。单片机根据预置参数的大小,控制三极管Q2驱动继电器K1,自动切换两种电源的输出。
显示电路略。
系统软件设计
PWM算法设计
由于风扇与帆板之间的距离d不固定,每次风扇电机起动时,PWM先按最大值距离时预置参数对应的PWM2值给定,当控制帆板转到预置参数值后,PWM值按下列公式计算出。
PWM=PWM2-((PWM2-PWM1)/K)×(θ1-θ2)
θ1=帆板转动的实际角度值;
θ2=预置参数;
PWM1最小距离时θ2对应的PWM值(由实验获得);
PWM2最大距离时θ2对应的PWM值(由实验获得);
K=d+13
PWM赋值范围是0~255。
软件流程设计
角度检测单元
角度检测单元主程序流程框图见图8所示,主要包括:
(1)初始化:I2C模式通信设置、定时器中断等;
(2)采集判断:采集完成标志位有效,传感器的数据保留;
(3)数据运算:每次采集到实际角度的信息,线性化后转换成可显示的角度值;
(4)50次采集判断:是否完成了50次角度数据采集;
(5)生成偏差量:实测帆板转角与预置参数运算,生成待调节的偏差量。
图8 角度检测单元主程序流程框图
控制单元
控制单元主程序流程,主要包括初始化、起动按键判断与处理、停止按键判断与处理、报警判断与处理和设置参数判断与处理等。
(1)初始化:主要包括引脚配置初始化、相关参数初始化等;
(2)起动按键判断与处理:按键有效,执行电机起动子程序(主要工作:读出EEPROM中预置参数,由PWM信号控制电机驱动器输出,并累计控制过程的用时);
(3)停止按键判断与处理:按键有效,执行电机停止子程序(主要工作:停止电机驱动器输出,并清零累计控制过程的时间);
(4)报警判断与处理:帆板转到预置参数时,执行声光报警子程序(主要工作:声光报警,停止累计控制过程的用时);
(5)设置参数判断与处理:按键有效,执行参数设定子程序(主要工作:实现帆板转动的预置参数设定,并存储保留参数值)。
测试方案与测试结果
1.测试仪器:量角器、刻度尺、示波器、温度计、数字万用表。
2.测试结果分析:经反复测试,要达到分辨力为1°、绝对误差≤3°、调整时间小于3秒、距离d在5cm~18cm 范围可变、旋转角度在0~20°之间变化时,电机供电电压应为9V;当风帆转角在21°~70°之间变化时,电机供电电压应为20V。对应的PWM数据如表1所示。
表1 PWM数据