步进电机控制器设计
更新时间:2023-07-20 16:31:01 阅读量: 实用文档 文档下载
电子发烧友 电子技术论坛
□毕业实习 □毕业设计 □毕业论文
题 目: 基于AVR单片机的
年 级: 2005级 专 业: 机电一体化技术 姓 名: 杨 明 学 号: 20056427 指导教师: 王世刚 日 期:
黑龙江大学职业技术学院制
摘 要
介绍了步进电动机的发展史,及国内的现状和步进电动机未来的应用前景。并且阐述了步进电动机转速、角度、转矩的控制原理。本文阐述了一种步进电机控制器的设计方案,并绘制了原理图和PCB板图,撰写了程序源代码。实现了对步进电动机转速、角度的控制,并完成了实物的制作。这期间主要使用protel99se软件绘制原理图和制板,使用proteus7.1软件进行程序代码的仿真和功能的理论验证。最后通过硬件的调试验证程序代码的实际功能,完成对控制器的设计。
关键词
AVR单片机;步进电动机;控制器。
Abstract
Introduction step enter electric motor of development history, and local present condition and step enter electric motor future of application foreground.And elaborated a step to enter electric motor to turn soon, angle, turn Ju of control principle.This text elaborated a kind of step enter electrical engineering controller of design project, and drew principle diagram and PCB plank diagram, composed a procedure source a code.Realization to step enter the electric motor turn soon, angle of control, and completion real object of creation.This period main usage the protel 99 se the software draw principle diagram and make plank, usage proteus 7.1 softwares carry on an imitate of procedure code true with the theories of the function verification.The end experiment certificate procedure a code through an adjust of hardware of actual function, completion design controller.
Key words
AVR MCU; Stepper Motor; Controller.
目 录
摘要………………………………………………………………………………………… Ⅰ 第一章、引言 1
1.1直流电机发展史 1 1.2直流电机分类 6 1.3直流电机应用的前景 1 第二章、直流电机控制系统………………………………………………………………… 2
2.1直流电机控制系统 2 2.2控制单元 2 2.3驱动电路 2 2.4通信端口 3 2.5其它 3 第三章、AT89C52单片机…………………………………………………………………… 4
3.1 AT89C52主要功能 4 3.2 AT89C52引脚功能 4 第四章、控制器电路图 6 第五章、步进电动机原理与控制 8
5.1步进电动机的结构 8 5.2步进电动机的控制原理 8 5.3 L298 8
5.3.1 L298芯片简介 9 5.3.2 L298步进电机控制 9
5.3.3控制机制 10 第六章、 程序代码………………………………………………………………………… 11 第七章、结构图……………………………………………………………………………… 30 结论………… ……… 31 参考文献…………………………………………………………………………………………32 致谢………………………………………………………………………………………………33
附录………………………………………………………………………………………………34
第一章、引 言
1.1步进电机发展史
步进电机又称电动机或阶跃电动机,国外一般称为 Step motor或Stepping motor 等。步进电机的机理是基于最基本的电磁铁作用,其原始模型起源于1830年至1860年间。1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中。这被认为是最初的步进电动。此后,在电话自动交换机中广泛使用了步进电动机。不久又在缺乏交流电源的船舶和飞机等独立系统中广泛使用。
20世纪60年代后期,随着永磁性材料的发展,各种实用性步进电动机应运而生,而半导体技术的发展则推进了步进电动机在众多领域的应用。在近30年间,步进电动机迅速地发展并成熟起来。从发展趋向来讲,步进电动机已经能与直流电动机、异步电动机,以及同步电动机并列,从而成为电动机的一种基本类型。
1.2我国步进电机发展
我国步进电动机的研究及制造起始于本世纪50年代后期。从50年代后期到60年代后期,主要是高等院校和科研机构为研究一些装置而使用或开发少量产品。这些产品以多段结构三相反应式步进电动机为主。70年代初期,步进电动机的生产和研究有所突破。除反映在驱动器设计方面的长足进步外,对反应式步进电动机本体的设计研究发展到一个较高水平。70年代中期至80年代中期为成品发展阶段,新品种高性能电动机不断被开发。自80年代中期以来,由于对步进电动机精确模型做了大量研究工作,各种混合式步进电动机及驱动器作为产品广泛利用。
1.3步进电机的应用前景
目前,随着电子技术、控制技术以及电动机本体的发展和变化,传统电机分类间的界面越来越模糊。步进电机必然会成为机电一体化元件组件的必然趋势。由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的迅速发展和微型计算机的普及与应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本又提高了控制的灵活性,可靠性及多功能性。市场上有很多现成的步进电机控制机构,但价格都偏高。应用SGS公司推出的L297和L298两芯片可方便的组成步
进电机驱动器,并结合Atmega16L单片机可以构成很好的步进电机控制系统。
第二章、步进电机控制系统
2.1步进电动机控制系统
步进电动机本体、步进电动机驱动电路和控制单元构成步进电动机系统不可分割的三大部分。系统框图见下图2-1:
图2-1步进电动机系统框图
2.2 控制单元
控制单元 、驱动电路为控制系统的核心部分。
控制单元是整个系统最核心的部分,是系统的指挥中心。用于协调各部分的运行,主要负责接收通信端口或输入电路送来的信息,并对其进行识别,译码,并做出相应的动作,发出控制信号用以控制步进电动机。控制单元实质上是具有处理能力的微处理器芯片。
控制单元可以由:单片机、DSP、PLC等充当。本文选用由ATEML公司生产的Atmega16l单片机。
2.3驱动电路
驱动电路是负责将控制单元送来的微电流信号进行放大用以驱动步进电动机运转,驱
动电路实质上是功率放大器。
常见的驱动电路:单电压型功放电路、高低压切换型功放电路、斩波恒流功放电路等
再就是采用专用的集成芯片。本文采用L297/L298芯片,由这两种芯片构成的驱动电路具有控制方便、精度高、并且不需要外围扩展。
2.4通信端口
通信端口是步进电机控制器与上位机(主要是指计算机)进行通信的接口,PC机串口采用的通信标准RS-232标准。使用单片机的USART端口与计算机的串口(9芯)相连进行通信。
2.5其它
显示屏:人机交互的窗口,使用JHD162A液晶屏。 输入电路:用于输入控制信息,告诉控制器如何运转。
第三章、Atmega16L单片机
Atmega16L是由ATMEL公司生产的高性能、低功耗的 8 位AVR® 微处理器芯片,具有16KB 系统内可编程 Flash。
3.1 Atmega16L主要功能
Atmega16L单片机的功能及特点简述如下:
1、16KB的系统内编程flash、512B的EEPROM、1KB的SRAM;
2、四通道的PWM; 3、两个可编程串行USART; 4、可工作于主机/从机模式的SPI;
5、具有独立片内振荡器的可编程看门狗定时器; 6、片内/片外中断源;
7、32个双向I/O端口,可单独控制; 8、TWI模块;
9、3个定时计数器等。
3.2 Atmega16L引脚功能
Atmega16L双列直插式(PDIP)引脚如图3-1:
图3-1 Atmega16L(PDIP)图
引脚功能简述如下:
A/VCC: 模拟/数字电源; AREF: A/D转换参考电压; XTAL1/2:晶振; RESET: 复位;
AREF: A/D转换参考电压; PA~PD: 双向I/O口; TXD: USART输出引脚; RXD: USART输入引脚; OC1A: PWM波形输出端;
注:USART,是一个高度灵活的串行通讯设备,通用同步和异步串行接收器和转发器的英文缩写。
第四章、控制器电路图
原理图说明:
本原理图,用Protel99se绘制。以总路线和网络标号连接,即相同的的网络标号具有电气连接。
Jrs----------RS-232串口; Rp-----------Vref调节电阻; LM2575-------稳压片;
JVCC---------电源接入口(俗称火牛头); Jlcd---------JHD162A液晶屏接口; JM-----------步进电机接线口; JTAG---------仿真下载器连接口; LED_B--------电源指示; MAX-202------电平转换芯片;
L297/298-----构成相序产生电路和驱动电路; 放大图见附录。
第五章、步进电动机原理与控制
从广义上讲,步进电动机的类型分为机械式、电磁式和组合式三大类型。
5.1 步进电动机的结构(图
5-1)
图5-1 HB型步进电动机结构示意图
5.2 步进电动机的控制原理
步进电机是一种将电脉冲信号变为相应的直流位移的数字/模拟变换器。每当电机绕组接收一个脉冲时,转子就转过一个相应的角度(步距)。
步进电机的角位移量和输入脉冲的个数严格成正比。在时间上与输入脉冲同步,因而只要控制输入脉冲的数量、频率和电机绕组的相序,即可获得所需要的转速和转动方向。
5.3 L297/L298
5.3.1 L297芯片简介
L297芯片是一种硬件环分集成芯片,它可产生四相驱动信号,用于两相双极或四相单极步进电动机的控制。它的心脏部分是一组译码器它能产生各种所需的相序,这一部分是由两种输入模式控制,方向控制(CW/CCW)和HALF/FULL,步进式时钟CLOCK将译码器从一阶梯推进至另一阶梯。译码器有四个输出点连接到输出逻辑部分,提供抑制和斩波功能所需的相序。L297能产生三种相序信号,对应于三种不同的工作方式:即半步方式(HALF STEP);基本步距(FULL STEP)一相激励方式;基本步距两相激励方式。
L297另一个重要组成是由两个PWM斩波器来控制相绕组电流,实现恒流斩波控制以获得良好的矩频特性。
5.3.2 L298芯片简介
L298芯片是一种高压、大电流双全桥式驱动器,其设计是为接受标准TTL逻辑电平信号和驱动电感负载的,例如继电器、圆筒形线圈、直流电机和步进电机,具有两抑制输入来使器件不受输入信号影响。每桥的三级管的射极是连接在一起的,相应外接线端可用来连接外设传感电阻。可安置另一输入电源,使逻辑能在低压下工作。L298芯片是具有15个引出脚的多瓦数直插封闭的集成芯片。
5.3.3 L297/298步进电机的控制
L297/298的连接如下图5-2:
图5-2 L297/298连接图
这里我只使用:半步工作方式和两相激励的基本步距工作方式。 两种工作方式见下表5-1:
表5-1 L297半步/两相激励基本步距工作方式
注:采用基本步距一相激励,存在一个缺点,在电流切换过程即通电状态改变过程中,有一瞬间可能所有的定子控制绕组都不通电,电磁转矩瞬间为零,这就使得电磁转距在电机运行中波动很大。所以我不采用这种工作模式。
5.3.4 控制机制
L297/298组成的完整系统,通过不同的连接可以驱动两相步进电动和驱动四相步进电机(可承受的最高电压为45V,每相电流可达2A)。单片机(简称mcu)发出时钟信号、正反转信号、工作模式信号、复位信号、使能信号及控制信号。CW/CCW控制电机的转向,取1和取0时转向相反。CLOCK为步进脉冲信号输入端,在每一个脉冲的下降沿,电机产生一步步进。HALF/FULL为半步或基本步距模式设置,为1时是半步模式,为0时是基本步距。(具体组合方式见表5-1)CONTORL斩波控制,当为0时,控制INH1和INH2;当为1时控制ABCD。ENABLE使能输入,当为0时,INH1、INH2、A,B,C和D都为0。RESET输入,当为0时,脉冲分配器回到初状态(HOME)。L297通过控制L298双H集成电路,来驱动步进电机。电路中,L297的15引脚上的两个电阻用来调节斩波器电路的参考电压。该电压通过管脚13、14所反馈的电位的大小比较,来确定是否进行斩波控制,以达到控制电机绕组电流峰值、保护步进电机的目的。
综上所述:步进电机的转速取决于CLOCK的脉冲频率,角位移取决于CLOCK的脉冲个数,转矩大小则取决于参考电压Vref的大小。
第六章、实现
6.1 main主程序流程图
6.2 程序代码
//***************************head.h************************************ #ifndef _HEAD_H #define _HEAD_H #include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> #include<avr/signal.h> #include<math.h> #define TOP OCR1A
#define PWMCONREG1 TCCR1A #define PWMCONREG2 TCCR1B #define PWM_IO DDRD|=_BV(PD5) #define L297_DIR PORTD #define L297_OUT DDRD|=0xfc #define RESET 0X40 #define HF 0X08 #define CC 0X10 #define CONTROL 0X80
#define S_RESET L297_DIR|=RESET #define C_RESET L297_DIR&=~RESET #define HALF L297_DIR|=HF #define FULL L297_DIR&=~HF #define CW L297_DIR|=CC #define CCW L297_DIR&=~CC
#define S_CONTROL L297_DIR|=CONTROL #define C_CONTROL L297_DIR&=~CONTROL
#define ADC_OUT DDRA //ADC模数转换寄存器宏 #define ADCWAYREG ADMUX #define ADCCONREG ADCSRA
#define ADCIOSFR SFIOR #define ADCDATL ADCL #define ADCDATH ADCH #define ADCDAT ADC #define AD_EN ADEN #define AD_SC ADSC
#define MODE1 1 //半步工作 #define MODE2 2 //基本步距
#define HALFMODESTR "HALF STEP MODE?" //工作方式字符串宏 #define NORMALSTR "NORMAL MODE?" #define CORRECTSTR "correct?" #define MINUSTR "minus?" #define STRWAY1 "1.on-off mode" #define STRWAY2 "2.dot-place mode" #define CORRECT '+' #define MINUS '-' #define SEI sei() #define CLI cli()
#define OPEN_CMP1A TIMSK|=_BV(OCIE1A) #define CLOSE_CMP1A TIMSK&=~_BV(OCIE1A) #define STEP 500 #define N 50
#define KEY_IN DDRC&=0X3C //KEY初始化宏定义 #define KEY_PIN PINC #define K1 KEY_PIN&0X01 #define K2 KEY_PIN&0X02 #define K3 KEY_PIN&0X40 #define K4 KEY_PIN&0X80 #define SET1 "1.Set frequency!" #define SET2 "2.Set mode!"
#include"whole_variable.c" #include"key.c" #include"JHD162A.c" #include"ADC.c" #include"pwm.c" #include"L297.c" #include"interrupt_def.c" #endif
//***********************head.h(结束)**********************************
//***********************whole_variable.c****************************** unsigned long n,counter,topfix,vn,n1,n2,fre=1000,ps;
unsigned char mode=1,direction='+',key_value,ch='1',key1_temp,key2_temp; unsigned char str_mode[20]="1.wave_mode?",str_mode1[20]="HALF STEP MODE?",str_mode2[20]="correct?"; unsigned char str_way[20]="1.on-off
mode",pulse[10]="000000000",cursor_i,pulse_i,ky,adc_str[5];
//*********************whole_variable.c(结束)**************************
//**************************key.c************************************** #include"head.h" unsigned char key(void) {
unsigned char key_value;
key_value=(KEY_PIN&0XC3)^0xc3;
if(key_value) //是否有键按下,无返回'0',有进入{} {
switch(key_value) {
case 0x01 : {while((KEY_PIN&0XC3)^0xc3) ; return '1' ;}
case 0x02 : {while((KEY_PIN&0XC3)^0xc3) ; return '2' ;} } } else return(0); }
//***********************key.c(结束)*********************************** //**************************JHD162A.c******************************** #include"head.h"
#define LCD_DIR DDRB //方向寄存器 #define LCD_DAR PORTB //数据寄存器 #define RS_H LCD_DAR|=0x04 //RS----PB2 #define RS_L LCD_DAR&=0xfa
#define E_H LCD_DAR|=0x08 //E-----PB3 #define E_L LCD_DAR&=0xf7 void e_h2l(void) {
E_H; //产生一个下降沿 _delay_us(2); //必须>=2us E_L; }
void lcd_send(unsigned char temp) {
LCD_DAR&=0X0F; //清高四位 LCD_DAR|=(temp&0XF0); //发送高四位 temp<<=4;
e_h2l(); //产生下降沿
case 0x40 : {while((KEY_PIN&0XC3)^0xc3) ; return '3' ;} case 0x80 : {while((KEY_PIN&0XC3)^0xc3) ; return '4' ;}
_delay_us(4); LCD_DAR&=0X0F;
LCD_DAR|=temp; //发送低四位 e_h2l(); }
void lcd_com(unsigned char comm) {
RS_L; //选择指令寄存器 _delay_us(20); lcd_send(comm); }
void lcd_data(unsigned char dat) { RS_H; _delay_us(20); lcd_send(dat); }
void cursor_on(void) //开光标 {
lcd_com(0x0f) ; }
void cursor_off(void) {
lcd_com(0x0c); }
void cursor_control(unsigned char x,unsigned char y) {
unsigned char addr;
addr=y>0?(0x80+0x40+x):(0x80+x) ; lcd_com(addr);
正在阅读:
步进电机控制器设计07-20
诸葛亮识人七术06-24
当我面对成功的时候作文800字06-17
日语小学一年级综合测试题第231期04-04
法定规划4-城市专项规划05-01
《词五首》之《望江南》《武陵春》“问君能有几多愁”教案03-11
记忆的星光作文500字07-13
Java Web程序设计第6章05-16
招标文件11-18
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 步进电机
- 控制器
- 设计
- 14届北京市东城区高三文综政治试题
- 2015湖南金岭茶业奖金制度
- 对香港公司报税理解的误区
- 中班绘本阅读《我永远爱你》
- 高一生物上学期期末考试试题5
- 2018学年北师大版小学数学三年级下册-《有趣的推理》-教学设计、教案
- 红外线气体分析仪测量原理、误差分析及故障处理
- Module12 测试5(外研版九年级上)
- 机械设计基础第一章
- 给排水专业施工图审查要点
- 试行海关进口增值税专用缴款书新管理办法存在的问题及对策初探
- 宝洁公司营销策略分析
- 患者对护理工作满意度评分表
- 沙钢项目IPO可行性研究报告
- 2010自考《经济法概论》(财经类)练习题
- 电气自动化毕业设计
- Microwave-absorbing characteristics for the composites of TPU-bonded NiZn-ferrites
- WordPress博客空间更换问题以及心得
- 教科版小学科学三年级下册实验教学计划
- lenovo联想小新二代V1000笔记本初体验