实验7 电机实验.docx
《实验7 电机实验.docx》由会员分享,可在线阅读,更多相关《实验7 电机实验.docx(15页珍藏版)》请在冰点文库上搜索。
实验7电机实验
实验7基于MCS-51单片机的电机控制实验
一、支撑课程目标
目标1:
掌握微机和单片机的基本原理、编程技术、中断技术、系统扩展、定时器、串行接口和其他输入/输出接口技术,并且了解典型的单片机应用系统的设计思想和实现方法。
目标2:
初步具备自行拟定实验步骤、检查和故障排除、分析和综合实验结果以及撰写实验报告的能力。
目标4:
掌握MCS-51单片机/STM32F103单片机系统仿真工具和仿真流程,了解常用实验仪器、设备的基本工作原理,了解其正确使用方法,具备利用电子仪器设备和专业仿真软件对复杂工程问题进行分析和设计的能力。
二、实验类型:
验证型()、设计型(√)、研究创新型()
三、预期学生学习的成果
1、对典型直流电机工作原理有一定认知。
2、理解直流电机的调速调向方法。
3、掌握直流电机的典型驱动电路。
4、掌握步进电机的励磁原理及相、拍、步距角等概念。
5、掌握步进电机的驱动程序设计。
6、理解电机速度测量的一般方法。
四、实验原理
1、电机励磁原理
电机是将电能转换为动能,通过电场转换为磁场,导体在磁场中会运动,磁场大小和磁场方向影响导体在磁场中运动方向和运动速度。
电能通过导线传导,数字电路里电压大小不变,影响电流大小的是周期内等效电压大小和线圈里的阻抗。
改变周期内的线圈等效电压大小可以改变周期内的线圈电流大小。
在驱动电压不变的条件下,一般总要求电流大,电机转动功率大,所以一般线圈电阻都很小,一般在200欧姆以下。
对于直流电机来说,改变周期内的电源通断时间就可以改变周期内的等效电压,改变转速。
改变电源接线端,就改变了电流方向,也就改变了直流电机的转向。
对于电机励磁来说,总是希望励磁电流大,磁场大,从而产生更大的转动功率。
一般控制器驱动电流小,只有几十到几百毫安。
因此,总是需要在控制器与电机之间加上驱动器,实现大电流产生电路。
三极管是典型的电流控制电流型器件,所以驱动电路直接利用大功率三极管驱动,也有的驱动模块将大功率放大电流外加一些控制电路封装在芯片内,包括常用的ULN2003、L297/298N、TB6560等。
2、步进电机驱动
步进电动机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置。
它具有快速启停能力,在电动机的负荷不超过它能提供的动态转矩时,可以通过输入脉冲来控制它在一瞬间启动或停止。
步进电动机的步距角和转速只和输入的脉冲频率有关,和环境温度、气压、振动无关,也不受电网电压的波动和负载变化的影响。
因此,步进电动机多应用在需精确定位的场合。
步进电动机有三线式、五线式和六线式,但其控制方式均相同。
都要以脉冲信号电流来驱动。
假设每旋转一圈需要200个脉冲信号来励磁,可以计算出每个励磁信号能使步进电动机前进1.8°,其旋转角度与脉冲的个数成正比。
步进电动机的正、反转由励磁脉冲产生的顺序来控制,见图1。
图1步进电机的控制
步进电机的一些基本参数:
电机固有步距角:
它表示控制系统每发一个步进脉冲信号,电机所转动的角度。
电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为‘电机固有步距角’,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。
步进电机的相数:
是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。
电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72°。
对于两相三线、四相五线、四相六线等步进电机,如何分别一相的两个线头,可以利用万用表测量电阻档功能,同一相线圈两头电阻一般小于200欧姆以下。
3、电机的测速
转速测量方法可以分为两类,一类是直接法,即直接观测机械或者电机的机械运动,测量特定时间内机械旋转的圈数,从而测出机械运动的转速;另一类是间接法,即测量由于机械转动导致其他物理量的变化,从这些物理量的变化与转速的关系来得到转速。
同时从测速仪是否与转轴接触又可分为接触式,非接触式。
目前国内外常用的测速方法有光电码盘测速法、霍尔元件测速法、离心式转速表测速法、测速发电机测速法、漏磁测速法、闪光测速法和振动测速法。
电机的测速方法有很多,在实验箱中介绍的有光电码盘测速和霍尔传感器测速。
(1)光电码盘测速法
通过测出转速信号的频率或周期来测量电机转速的一种无接触测速法。
光电码盘安装在转子端轴上,随着电机的转动,光电码盘也跟着一起转动,如果有一个固定光源照射在码盘上,则可利用光敏元件来接受光,接收到光的次数就是码盘的编码数。
若编码数为l,测量时间为t,测量到的脉冲数为N,则转速n=(N/t*l)*60。
(2)霍尔元件测速法
利用霍尔开关元件测转速的。
霍尔开关元件内含稳压电路、霍尔电势发生器、放大器、施密特触发器和输出电路。
输出电平与TTL电平兼容,在电机转轴上装一个圆盘,圆盘上装若干对小磁钢,小磁钢越多,分辨率越高,霍尔开关固定在小磁钢附近,当电机转动时,每当一个小磁钢转过霍尔开关,霍尔开关便输出一个脉冲,计算出单位时间的脉冲数,即可确定旋转体的转速。
五、实验内容及步骤
(一)实验内容
1、编写程序,连接导线,下载程序代码,调试完成步进电机调速调向的实验。
2、编写程序,连接导线,下载程序代码,调试基于DAC0832的直流电机调速调向的实验。
(二)实验步骤
(1)步进电机调速调向控制
预习基于ULN2003的步进电机驱动电路,步进电机选用4相6线步进电机,额定电压+5V。
、Keil软件下建立工程,编写源文件,将源文件编译连接生成hex文件,嵌入到单片机里。
、调试电路,调节按键和开关来改变步进电机的运行方式,注意放大电路原理图观察步进电机运行特性。
、通过程序改变正、反转命令,转速参数和转动步数,并在显示器上显示,转动步数减为零时停止转动,实验原理图见图2。
图2步进电机实验原理图
、将“51CPU系统I/O”区的P1.0~P1.3分别接到“步进电机驱动控制”单元的BA~BD插孔。
、用8芯排线将8279区DU(a-h)连接到数码管显示区的DU(a-h),BIT连接到数码管显示区的BIT。
、8279区8279CS连到系统译码的Y6上,8279CLK连接到固定脉冲的1MHz。
、调试、运行工程中hex文件。
、在显示器上显示的数字含义:
第一位为“0”表示正转,为“1”表示反转,第三位“0~F”为转速等级,第五位到第八位设定步数,步数每步减1,减到0步进电机停止旋转。
(2)直流电机调速调向控制
预习基于三极管的直流电机驱动电路,直流电机选用额定电压+5V的小直流电机,2线,采用三极管来驱动。
、Keil软件下建立工程,编写源文件,将源文件编译连接生成hex文件,嵌入到单片机里。
、调试电路,调节按键和开关来改变直流电机的运行方式,注意放大电路原理图观察直流电机运行特性。
、小直流电机调速实验,原理图见图3。
、将D/A区0832的片选信号CS_0832连到译码输出Y0上,0832的输出DAOUT端连到插孔DJ。
、调试、运行程序工程中的hex文件。
、观察直流电机的转速。
实验说明:
1、D/A转换电路DAC0832的输出,经放大后用来驱动直流电机。
2、编制程序改变DAC0832输出,输出信号经过放大产生方波信号,用此信号的占空比来调速。
本实验中D/A输出为双极性输出,因此电机可以正反向旋转。
3、本实验设备上有光电管和霍尔两种测速方式,J0接上跳帽为霍尔传感器输出,J1接上跳帽为光电管传感器输出(J0和J1不能同时接上)。
传感器信号通过整形后得到的脉冲信号由FOUT插孔输出,通过测量脉冲频率可以测得电机转速。
图3直流电机电压调速实验
六、实验结果
程序
/*51实验11:
步进电机实验*/
#include
#include
#include<8279.h>
unsignedcharcodeP1OUTB[4]={0x03,0x06,0x0C,0x09};//正转环形脉冲编码
unsignedcharspeed,zfz;
unsignedintstep;
voiddisperr(void);
voidzspeed(unsignedchari);
voidmain(void)
{
unsignedchartmp1;
zfz=0;//方向0,1
speed=0x08;//速度0~F
step=8888;//步数0000~9999
if(zfz>1)disperr();//方向设置错误出错显示
if(speed>0x0f)disperr();//速度设置错误出错显示
buffer[0]=zfz;
buffer[1]=0x12;
buffer[2]=speed;
buffer[3]=0x12;
buffer[4]=step/1000;
buffer[5]=(step%1000)/100;
buffer[6]=((step%1000)%100)/10;
buffer[7]=((step%1000)%100)%10;
init8279();
disp8279();//显示状态
delay(5);
disp8279();
while(step!
=0x00)
{
for(tmp1=0;tmp1<4;tmp1++)
{
if(zfz==0)P1=P1OUTB[tmp1];//正转
else{P1=P1OUTB[3-tmp1];}//反转
zspeed(speed);
step--;//步数-
buffer[4]=step/1000;//计算步数
buffer[5]=(step%1000)/100;
buffer[6]=((step%1000)%100)/10;
buffer[7]=((step%1000)%100)%10;
disp8279();
}
}
while
(1);
}
voiddisperr(void)//出错显示
{buffer[0]=0x12;
buffer[1]=0x12;
buffer[2]=0x12;
buffer[3]=0x0e;
buffer[4]=0x0a;
buffer[5]=0x0a;
buffer[6]=0x12;
buffer[7]=0x12;
init8279();
disp8279();
delay(5);
disp8279();
while
(1);
}
voidzspeed(unsignedchari)
{unsignedcharj;
for(j=0;j
delay(10);
}
/*NET51实验11:
直流电机调速实验*/
#include
#include
#definedaportXBYTE[0x8000]//0832地址Y0
voiddelay(unsignedchari1);
voidmain(void)
{
unsignedcharhight,low;
bitupdown;
updown=1;
hight=0xff;
low=0x00;
while
(1)
{
daport=0xff;//输出5V
delay(hight);
daport=0x00;//-5V
delay(low);
if(updown)
{//改变占空比
hight++;
low--;
if(hight==0xff)updown=0;
}
else
{
hight--;
low++;
if(hight==0x0)updown=1;
}
}
}
voiddelay(unsignedchari1)
{
unsignedcharii;
unsignedintjj;
for(ii=0;iifor(jj=0;jj<0x10;jj++);
}
(1)步进电机调速调向:
●Keil
●实验箱
“0-5-9728”
“0-5-9791”
(2)直流电机调速调向
●Keil
●实验箱
七、实验分析
(1)步进电机调速调向:
步进电机通过改变电流变化的时间间隔可以改变电机的速度。
步进电机调转速如果是用步进电机驱动器那么调节驱动器就可以了;如果是软件控制步进电机的转速,那么调节脉冲的宽度就可以做到了,宽度大转速就慢反之变快,不过需要注意的是不能调的太快,步进电机有一个牵出频率,超过牵出频率就可能造成失步而不能正常转动。
实验现象:
白色步进电机以一定速度转动,数码管随之跳动。
改变程序正、反转命令,转速参数和转动步数,可以在显示器上显示,转动步数减为零时停止转动。
(2)直流电机调速调向控制
直流电机只要能提供一定的电压就可以转动,改变电压极性就可以改变转动方向,改变电压大小就可以改变转动速度。
烧入程序后,单片机产生可控的PWM,驱动H桥,改变H桥的极性改变方向,通过控制单片机控制PWM的占控比,改变两端有效电压从而控制黑色电机转速,烧入程序后可观察到电机正反向旋转。
评分:
__________