舵机、步进电机综合控制器设计
2020-03-25黄益民
黄益民
摘要:本文设计了一种利用AT89S52作为主控微处理器,键盘作为输入设备,数码管作为显示设备的舵机、步进电机综合控制系统,用户能通过键盘向系统输入运动指令如:步进电机正转、反转、调速,舵机的角度旋转控制等,该系统具有很好的可扩展性,可根据实际运用增加外围设备,运用具有较强的可塑性。
Abstract: This paper designs a comprehensive control system for steering gear and stepper motor using AT89S52 as the main control microprocessor, keyboard as input device, and digital tube as display device. Users can input motion instructions to the system through the keyboard, such as: stepper motor forward rotation, reverse rotation, speed regulation, steering angle rotation control, etc. The system has good scalability, and peripheral equipment can be added according to the actual application. The application has strong plasticity.
关键词:AT89S52;舵机;步进电机;PWM信号;数码管
Key words: AT89S52;rudder machine;stepper motor;PWM;the figures tube
中图分类号:U664.4+1 文献标识码:A 文章编号:1006-4311(2020)04-0225-02
0 引言
随着现代科学技术的不断发展和市场需求的多样化,国内外知名电气工程和机械厂家日益关注智能产品的多功能开发。机械制造业在经历了内燃机的动力革命,以及液压、气压的传动革命之后,现在正致力于应用电气化控制技术来完成产品的操作和控制革命,以满足更多的用户对产品节能、环保、舒适性、智能化和便捷维护的要求。本系统通过经济性和实用性考虑,采用单片机作为微控制器对舵机、步进电机进行综合控制,得到一个既能提高电机的控制速度和控制精度又可以对多种电机进行综合控制的控制器。
1 系統硬件设计
1.1 显示键盘控制部分硬件设计
本系统采用一个数码管作为显示输出,为了简化编程,本系统采用静态驱动方式,来驱动数码管显示。静态驱动也称作直流驱动,各显示器在显示过程中,持续得到递送过来的信号,该驱动是指每个数码管的每个段码都由一个单片机的I/O端口进行驱动。静态驱动相对于动态显示而言,优点是显而易见的,编程简单,显示亮度高,无闪烁,无需扫描,节省CPU时间,而缺点是用元器件多,占用I/O端口比较多。
1.2 舵机控制硬件设计
舵机主要是由外壳、电路板、数据存储器、中央控制器、无核心马达、齿轮、数据存储器与位置检测器所构成。中央控制器内带有单片机,可以人工编程,达到所需控制目的。其工作原理是由单片机将工作指令以二进制形式发送给上位机,经由电路板,将电信号转化为偏角指令,传送到舵机调节单元,判断转动方向,再驱动无核心马达转动,通过减速齿轮及连杆将动力传至摆臂,同时由位置检测器(可变电阻)反馈实时讯号,判断舵机是否已经到指定位置。舵机内部电路板自行产生一个PWM信号,该信号的占空比根据电动机旋转位置而定,AT89S52需要提供一个有一定占空比的PWM信号,在舵机内部和原有PWM信号比较,根据两信号的电压差控制电动机转动,从而改变内部PWM信号,当其和输入信号一致时,电动机便停止转动。
综上所述,对于舵机,AT89S52需要输出一个可控占空比的PWM信号。
用单片机系统实现对舵机输出转角的控制,必须要完成两个任务:第一,产生基本的PWM周期信号(本次设计是产生20ms的周期信号);第二,是脉宽的调整,即用单片机模拟PWM信号的输出,并且调整占空比来达到控制目的。
1.3 步进电机控制硬件的设计
步进电机及脉冲电机,是一种感应电机,它将电脉冲信号转变为角位移或线位移的开环控制元件。步进电机是一种执行元件,是机电一体化的关键产品之一,是现代数字程序控制系统中的主要执行元件,广泛应用在各种自动化控制系统领域中。步进电机的转子为永磁体,当有电流流过电机定子绕组时,定子绕组产生一个矢量磁场。该磁场会带动电机转子旋转一角度,使得转子的一对磁场方向与电机定子的磁场方向一致。当定子的矢量磁场旋转一个角度,同时转子也随着该磁场转了一个角度。这样就可以通过控制脉冲的个数,来控制角位移量,从而达到准确定位控制的目的;同时,也可以通过控制脉冲频率,来控制电机转动的速度和加速度,从而达到加速或减速的目的。当然,也可以实现正反转,改变绕组通电的顺序即可。由于脉冲信号数与步距角呈线性关系,加上步进电机无累积误差等特点,使得在速度、位置等控制场所和领域用步进电机来控制,变的非常的简单。
1.4 主控制微处理器的选择和主电路硬件设计
本系统设计采用AT89S52单片机,它是一种低功耗、高性能的有8K字节可编程(也可擦写)闪存的8位互补金属氧化物半导体微控制器。同时它带有ISP下载功能,利用89S-AVR ISP编程器来替代价格昂贵的单片机仿真器编程器,一来节省开发费用,二来使用方便。AT89S52的运行速度非常快,处理能力强,并且对语言编程方面提供了较好的支持。
按照功能,AT89S52的引脚,可分为如下四类:①主电源;②外接晶振或振荡器;③多功能I/O口;④控制、选通和复位。
①P0~P3四个8位并行I/O口均可作普通I/O口使用,每个口线也可以单独作为输入或输出。此时它们是准双向口;在将某一口线作为输出口用时可直接向其输出数据,而作为输入口用时,必须先向该口的锁存器写1,将其置为高阻输入,方可读入引脚数据。
AT89S52的I/O口具有自动识别特性。即P0、P2口的总线复用和P1、P3口的第二个功能,都是由单片机自动选择的,不需要通过指令去设定。
②AT89S52可外接晶振或振荡器,频率范围0~33Hz。外接振荡器时XTAL2浮空。
③AT89S52单片机是高电平复位。
④在无外扩程序存储器和数据存储器时,EA应接高电平。
2 系统分立模块的软件设计
2.1 主程序
本系统主程序为判断键位,根据输入量调用各部分功能程序,并执行按键对应子程序来设定步进电动机和舵机的运动状态,最后执行运动流程。
程序初始化,显示关闭,准备接收键盘输入,按下键1,执行数码显示程序,数码管工作。再次按键1,设定步进电机工作速度,设定完速度,判断按键2是否按下,按下则指示灯亮,并执行步进电机工作程序和按键跳出程序。按下鍵3,指示灯亮,转入舵机工作程序,设定并打开定时中断,产生舵机输入脉冲,寄存器清零。键判断程序判断是否按键,如果按键则舵机角度运转,再次按下3键,则跳出舵机运转程序,转入主程序。
2.2 步进电机运行程序
数码管设定转速后,若步进电机程序开始按钮按下,则转入步进电机工作程序,程序实现步进电机的正反转。
2.3 定时中断服务程序
此程序主要为舵机提供PWM信号,根据键盘输入改变PWM信号的占空比,从而改变舵机的输出转角。中断开始先重新装入初值,执行舵机的PWM信号程序,通过改变延时程序调整输出脉宽,将脉宽传输给舵机,通过执行按钮控制舵机角度转动。
2.4 延时程序
本系统提供了两种可调节延时程序,一种可调节的延时程序,通过改变设定初值用于键盘消抖和控制步进电机的转速,另一种可调节延时程序用于调整舵机的转角。
2.5 显示程序
本系统只采用一个数码管显示,故采用静态显示驱动方式,显示程序获得按键输入后用查表程序找到数字的代码,然后输出给P1七个引脚直接驱动数码管显示。
3 结束语
本设计的最大创新点在于实现了一片AT89C51单片机同时控制三路不同电动机定角度定圈数旋转,并显示控制状态。经过社会市场调查,目前市面上比较普遍的是一个单片机实现一种电动机的多路控制,当要驱动多种电动机时,就必须使用多片单片机。因此,本系统在某种意义上还有很大的发展空间。
参考文献:
[1]王时胜,姜建平.采用单片机实现PWM式D/A转换技术[J].电子质量,2004,12(2).
[2]高同跃,等.一种超小型无人机舵机控制系统的设计[J].计算机测量与控制,2007,15(8).
[3]艾宁,等.智能车运动状态实时监测系统的设计及实现[D].电子产品世界,2007,8(5).
[4]丛喜东,等.基于AVR单片机的微型舵机控制[J].科技资讯,2007,10(8).
[5]熊诗波,黄长艺.机械工程测试技术基础[M].三版.北京:机械工业出版社,2006:68-124.
[6]张友德,赵志英,等.单片微型机原理、应用与试验[M].四版.上海:复旦大学出版社,2006(3):25-113.
[7]陈阳海.单片机的基本结构与工作原理(二)-AT89S52单片机引脚功能、时钟系统、时序及复位[M].电子制作,2006(2).
[8]CHRIS GASKETT; ALE?譒 UDE; GORDON CHENG.HAND–EYE COORDINATION THROUGH ENDPOINT CLOSED-LOOP AND LEARNED ENDPOINT OPEN-LOOP VISUAL SERVO CONTROL. International Journal of Humanoid Robotics (IJHR)?. 2005, 2(2).