1.实验目的
本实验介绍了用单片机ATmega128控制步进电动机,使步进电动机每隔7.5s反转一次。通过这个实验,使读者能掌握使用单片机控制步进电动机进行转动的方法。
2.实验设备
(1)硬件
● 单片机实验母板(IOT-SCMMB)1套。
● 传感器及外围模块(IOT-MODULES)1套。
● JTAG编程器1个。
● PC(含串口)1台。
(2)软件
● WinAVR20050214。
● AVRStudio4.18。
3.实验原理
本实验使用IOT-SCMMB单片机实验母板上的ATmega128实现一个步进电动机转动的实验。实验中使用单片机的4个I/O口给步进电动机发送相关的时序,控制步进电动机的转动,并且通过单片机的定时器控制步进电动机正反向转动。两相步进电动机有4根引线,分为A、、B、,单极两相步进电动机的控制过程如图3-12所示。
如果信号的时序是,步进电动机就顺时针转动;如果按照相反的时序给信号,步进电动机就会反向转动。
图3-12 单极两相步进电动机的控制过程
单片机与步进电动机的接口连接方式是这样的:单片机的PB4与A相连,PB5与相连,PB6与B相连,PB7与相连。要产生AB信号,仅当PB4为高电平,PB5为低电平,并且PB6为高电平,PB7为低电平。依此类推,产生信号。A、、B、的时序图如图3-13所示,注意,两条虚线之间就是产生信号的时序图。
图3-13 单极两相步进电动机时序图
下面结合代码进行分析。要产生上述时序,需要定义如下数组:
(www.xing528.com)
按顺序将上述数组发送出去,就会产生相应的时序,即:
实验时使用定时器,每隔7.5s改变步进电动机的转动方向。使用定时器改变转动的方向的定时器处理函数如下(其中dir=~dir改变步进电动机的转动方向):
实验过程如下:
首先,单片机向连接了步进电动机的I/O口发送相应的数据,便产生上述的时序,控制步进电动机进行转动。每过7.5s,定时器中断处理程序执行以改变步进电动机的旋转方向。
下面是主函数代码(其中,go_step_2phase(1000)为调用步进电动机转动函数,控制步进电动机进行转动,其参数用来控制步进电动机转动的快慢,当这个参数变大时,步进电动机转速变慢;参数变小时,步进电动机转速变快):
4.实验内容
阅读相关的书籍,学习步进电动机的转动原理和通过单片机控制步进电动机转动的方法。查阅ATmega128的芯片手册,学习单片机定时器的使用方法,并使用其控制步进电动机的转动方向。
5.实验步骤
1)编写实验代码,并编译得到.hex文件。
2)使用AVR Studio将.hex文件下载到节点上。
3)在实验板上会看到步进电动机正向转动,过了7.5s后步进电动机会反向转动,如此往复运行。
6.思考题
1)本程序中,步进电动机是两相的,如何实现一相、一二相的步进电动机的转动。
2)如何修改程序能使步进电动机每隔5s转向一次。
7.补充阅读
[1]徐勇军,安竹林,等.无线传感器网络实验教程[M].北京:北京理工大学出版社,2007.[2]ATmega128/LDatasheet.http://www.atmel.com/.Atmel,2010.
[3]XiaohuaZhang,BingjiXu.Research on Stepper Motor Control Based on Single Chip and Serial Communication.World Congress on Intelligent Control and Automation,2010,3019-3023.
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。