电机控制Word文件下载.docx
- 文档编号:21694328
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:85.71KB
电机控制Word文件下载.docx
《电机控制Word文件下载.docx》由会员分享,可在线阅读,更多相关《电机控制Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
因此,线圈二边受力方向也不变。
这样,线圈就可以按受力方向不停地旋转。
这就是直流电动机的工作原理。
三、结论:
直流电机的运行是可逆的。
即一台直流电机即可作为发电机运行,也可作为电动机运行。
当它作为发电机运行时,外加转矩拖动转子旋转,绕组产生感应电动势,接通负载以后提供电流,从而将机械能转变成电能。
当它作为直流电动机运行时,通电的绕组导体在磁场中受力,产生电磁转矩并拖动负载转动,从而将电能变成机械能。
上图所示为他励电机。
励磁绕组与电枢回路各自分开,励磁绕组由独立的直流电源供电。
也有用永久磁铁作为主极磁场的电机,也可作他励。
图中与电枢串接小磁极N、S为换向磁极。
要改变直流电动机的旋转方向,就需要改变直流电动机的电磁转矩方向,而电磁转矩决定于主极磁通和电枢电流的相互作用,故改变电动机转向的方法有二种:
一是改变励磁电流的方向;
另一种是改变电枢电流的方向。
如果同时改变励磁电流和电枢电流的方向,则电机的转向不变。
直流永磁电机按照是否采用电刷换向可分为有刷电机和无刷电机两种,有刷电机是直流电机的主流产品,目前绝大多数电动自行车电机都是有刷电机。
无刷电机是一种特殊的直流电机,它采用内置传感器外加电子换向器的方法进行电子换向,无刷电机主要是为了消除电刷的磨损,以及电刷接触所产生的噪声。
有刷电机
目前被国内大多数电动自行车生产厂家所选用,它采用碳刷作为电机电源的两个触点,利用调速转把和控制器来控制,通过齿轮二次减速及超越离合器来达到电动自行车0-20公里/小时的无极调速。
目前采用的这种有刷高速电机含金量高,电机减速齿轮强度较强,耐磨性好,设计合理,故返修率较低;
而且维修更换齿轮和电机的成本较少,有效的降低了电动自行车的维修费用;
并且有刷电机可以通过超越离合器和飞轮实现轻松人力骑行。
无刷电机
目前被电动自行车生产厂家采用的一般都是无刷无齿电机。
它的转速控制系统的造价比有刷高速电机的转速控制系统要高,控制器在使用中容易发生故障。
装有无刷电机的电动自行车行驶速度必须到35公里/小时以上时,才能发挥其最佳的工作效率,但是我们知道电动自行车作为非机动车来管理,时速必须在20公里/小时以下,故无刷电机被电动自行车选用降低了工作效率,可取性不强。
现在它被采用的主要一点是噪音小。
无刷电机与有刷电机的结构比较
电动机的定子绕组多做成三相对称星形接法,同三相异步电动机十分相似。
电动机的转子上粘有已充磁的永磁体,为了检测电动机转子的极性,在电动机内装有位置传感器。
驱动器由功率电子器件和集成电路等构成,其功能是:
接受电动机的启动、停止、制动信号,以控制电动机的启动、停止和制动;
接受位置传感器信号和正反转信号,用来控制逆变桥各功率管的通断,产生连续转矩;
接受速度指令和速度反馈信号,用来控制和调整转速;
提供保护和显示等等。
结构上,无刷电机和有刷电机有相似之处,也有转子和定子,只不过和有刷电机的结构相反;
有刷电机的转是线圈绕组,和动力输出轴相连,定子是永磁磁钢;
无刷电机的转子是永磁磁钢,连同外壳一起和输出轴相连,定子是绕组线圈,去掉了有刷电机用来交替变换电磁场的换向电刷,故称之为无刷电机。
有刷电机控制器与无刷电机控制器的接法区别
有刷和无刷无论从电机来区别还是从控制器区别都是不同的,有刷电机只有两根线即正负极,它的转子是线圈所以要安装碳刷。
它成本小工艺较简单但动力小噪音大。
无刷电机为三相电机以磁缸为转子,无需碳刷但需安装霍尔传感器来识别相位,所以无刷控制器有三根电机相线和五根霍尔传感电路线与电机连接。
目前为解决霍尔传感器易损坏造成电机无法正常使用又开发出的自学习控制器则无需连接霍尔传感器。
但相线依然为三根。
有刷电机的优点:
电刷磨损和电机噪声是有“有刷”相对与无刷的两个最主要的缺点,但尽管存在这两个缺点,为什么国内绝大多数品版厂家仍采用有刷电机的方案呢,难道他们没有意识到这个问题吗?
脉宽调制(PWM)是利用微处理器的数字输出来对直流电机速度进行控制的一种非常有效的技术。
本设计采用AT89S51作为主控芯片,选用L298作为直流电机的驱动器,利用软件编程,能够设置多个占空比不同的脉冲,使得电机转速可以逐步增大或减小,在单片机的控制下L298的输出开关速度很快,稳定性也极佳。
介绍了一种基于AT89C2051单片机的直流电机调速装置,该装置以小型直流电机为对象,由AT89C2051单片机控制输出PWM信号,经过功率放大后驱动直流电机,用按键实现直流电机的加速、减速控制。
该装置成本低廉且极容易实现,在实际轻载系统中运行稳定、可靠。
所谓PWM就是脉宽调制器,通过调制器给电机提供一个具有一定频率的脉冲宽度可调的脉冲电。
脉冲宽度越大即占空比越大,提供给电机的平均电压越大,电机转速就高。
反之脉冲宽度越小,则占空比越越小。
提供给电机的平均电压越小,电机转速就低。
Pwm(脉宽调制)是常用的一种调速方法,原理:
改变电机电枢(定子)电压的接通和断开的时间比(占空比)来控制马达的速度,在脉宽调制系统中,当电机通电时,其速度增加;
电机断电,其速度减低。
只要按照一定的规律改变通、断电时间,即可是电机的速度达到并保持一稳定值。
实验板与PC机的连接:
一般对现成购买的开发板来说,会有一个USB接口提供5v电源、提供通信或另一个USB用来下载接口驱动程序,同时有RS232串口(USB转9针串口),实现MAX232电平与单片机TTL电平之间转换,用来进行通信下载程序和数据;
单片机程序要烧录到单片机rom中,通过仪器烧,或用软件烧入,
电脑上的RS232接口采用的是负逻辑电平:
-15~-3表示逻辑1;
+15~+3表示逻辑0;
且采用PWM技术构成的无级调速系统.启停时对直流系统无冲击,并且具有启动功耗小、运行稳定的特点。
电机始终接通电源时,最大平均电压,对应电机转速最大为Vmax,且设占空比为D=t/T,则电机的平均速度Vd为:
Vd=VmaxD
由公式可知,当改变占空比D=t/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。
严格地讲,平均速度与占空比D并不是严格的线性关系,在一般的应用中,可将其近似地看成线性关系。
在直流电机驱动控制电路中,PWM信号由外部控制电路提供,并经高速光电隔离电路、电机驱动逻辑与放大电路后,驱动H桥下臂MOSFET的开关来改变直流电机电枢上平均电压,从而控制电机的转速,实现直流电机PWM调速。
长距离信号传输的问题:
PC端配一个蓝牙适配器,单片机端配一个蓝牙串口模块(MCU->
蓝牙串口模块——蓝牙适配器-->
PC)
程序1
给你个能正反转的!
#include<
reg51.h>
intrins.h>
unsignedcharcodetable[]={0x01,0x02,0x04,0x08};
unsignedcharcodetable0[]={0x08,0x04,0x02,0x01};
voiddelay(unsignedcharms)
{
unsignedchari,j;
for(i=ms;
i>
0;
i--)
for(j=110;
j>
j--);
}
voidmain()
unsignedchari;
while
(1)
{
for(i=0;
i<
4;
i++)
P0=table[i];
delay(100);
}
如果反转的话把table改为table0就行了
首先要看你的电机是直流电机还是步进电机。
直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。
不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。
比如让单片机P1.0=0,P1.1=1;
(单片机I/0口要与电机驱动芯片的输入脚相连)这样的话,电机驱动芯片就会输出一个电压差,可以使直流电机向一个方向转,如果使P1.0=1,P1.1=0,则电机驱动芯片会输出一个和刚才相反的电压,使电机向相反的方向转动。
H桥电路和电机驱动芯片的原理差不多,网上多的是。
我这说的只是简单的原理,实际中,L298N的输入端和单片机相连的时候要加光耦隔离,否则单片机会工作不正常。
步进电机就稍微复杂点,也得需要电机驱动芯片才行,只不过控制信号是按一定的规律给的,规律变了,电机转动的方向也就变了。
楼上给出的貌似是步进电机的驱动程序。
程序2
#include<
AT89X51.H>
#defineucharunsignedchar
/*****************************************************************************
*TH0和TL0是计数器0的高8位和低8位计数器,计算办法:
TL0=(65536-C)%256;
*
*TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;
TMOD是计数器*
*工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时*
*间为1ms*65536=65.536ms*
******************************************************************************/
#defineV_TH00XFF
#defineV_TL00XF6
#defineV_TMOD0X01
voidinit_sys(void);
/*系统初始化函数*/
voidDelay5Ms(void);
unsignedcharZKB1,ZKB2;
voidmain(void)
init_sys();
ZKB1=40;
/*占空比初始值设定*/
ZKB2=70;
if(!
P1_1)//如果按了+键,增加占空比
Delay5Ms();
P1_1)
ZKB1++;
ZKB2=100-ZKB1;
P1_2)//如果按了-键,减少占空比
P1_2)
ZKB1--;
/*对占空比值限定范围*/
if(ZKB1>
99)ZKB1=1;
if(ZKB1<
1)ZKB1=99;
/******************************************************
*函数功能:
对系统进行初始化,包括定时器初始化和变量初始化*/
voidinit_sys(void)/*系统初始化函数*/
/*定时器初始化*/
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
TR0=1;
ET0=1;
EA=1;
//延时
voidDelay5Ms(void)
unsignedintTempCyc=1000;
while(TempCyc--);
/*中断函数*/
voidtimer0(void)interrupt1using2
staticucharclick='
0'
;
/*中断次数计数器变量*/
TH0=V_TH0;
/*恢复定时器初始值*/
TL0=V_TL0;
++click;
if(click>
=100)click='
if(click<
=ZKB1)/*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
P1_3=0;
else
P1_3=1;
=ZKB2)
P1_4=0;
P1_4=1;
}只是调占空比的,希望对你有帮助,调试好的
程序3
voiddelayms(INT16Uk)。
。
可以设置一段延时程序这里大约是1ms
{INT16Ua,s;
for(a=k;
a>
a--)
for(s=110;
s>
s--);
voidPWM()M1,M4为电机的使能端,为1时电机工作,为0时电机不工作,
通过电机导通和不导通的时间的控制就能产生PWM信号,在这
里只要调节speed的变化就可以调节PWM信号的占空比了。
M1=1;
M4=1;
delayms(speed);
M1=0;
M4=0;
delayms(30-speed);
//你可以在这里加一个键盘检测程序来控制电机的占空比来调节减速还是加速
这是加速程序
{
speed=speed+5;
if(speed>
=30)
speed=30;
这是减速程序
if(speed!
=5)
speed=speed-5;
else
speed=5;
程序4
电机转速表设计
//包含单片机寄存器的头文件
//包含_nop_()函数定义的头文件
sbitRS=P2^0;
//寄存器选择位,将RS位定义为P2.0引脚
sbitRW=P2^1;
//读写选择位,将RW位定义为P2.1引脚
sbitE=P2^2;
//使能信号位,将E位定义为P2.2引脚
sbitBF=P0^7;
//忙碌标志位,,将BF位定义为P0.7引脚
unsignedcharcodedigit[]={"
0123456789"
};
//定义字符数组显示数字
unsignedintv;
//储存电机转速
unsignedcharcount;
//储存定时器T0中断次数
bitflag;
//计满1秒钟标志位
/*****************************************************
函数功能:
延时1ms
(3j+2)*i=(3×
33+2)×
10=1010(微秒),可以认为是1毫秒
***************************************************/
voiddelay1ms()
unsignedchari,j;
10;
for(j=0;
j<
33;
j++)
延时若干毫秒
入口参数:
n
voiddelay(unsignedcharn)
unsignedchari;
n;
delay1ms();
判断液晶模块的忙碌状态
返回值:
result。
result=1,忙碌;
result=0,不忙
unsignedcharBusyTest(void)
bitresult;
RS=0;
//根据规定,RS为低电平,RW为高电平时,可以读状态
RW=1;
E=1;
//E=1,才允许读写
_nop_();
//空操作
//空操作四个机器周期,给硬件反应时间
result=BF;
//将忙碌标志电平赋给result
E=0;
//将E恢复低电平
returnresult;
将模式设置指令或显示地址写入液晶模块
dictate
voidWriteInstruction(unsignedchardictate)
{
while(BusyTest()==1);
//如果忙就等待
//根据规定,RS和R/W同时为低电平时,可以写入指令
RW=0;
//E置低电平(根据表8-6,写指令时,E为高脉冲,
//就是让E从0到1发生正跳变,所以应先置"
0"
//空操作两个机器周期,给硬件反应时间
P0=dictate;
//将数据送入P0口,即写入指令或地址
//空操作四个机器周期,给硬件反应时间
//E置高电平
//当E由高电平跳变成低电平时,液晶模块开始执行命令
指定字符显示的实际地址
x
voidWriteAddress(unsignedcharx)
WriteInstruction(x|0x80);
//显示位置的确定方法规定为"
80H+地址码x"
将数据(字符的标准ASCII码)写入液晶模块
y(为字符常量)
voidWriteData(unsignedchary)
RS=1;
//RS为高电平,RW为低电平时,可以写入数据
P0=y;
//将数据送入P0口,即将数据写入液晶模块
对LCD的显示模式进行初始化设置
voidLcdInitiate(void)
delay(15);
//延时15ms,首次写指令时应给LCD一段较长的反应时间
WriteInstruction(0x38);
//显示模式设置:
16×
2显示,5×
7点阵,8位数据接口
delay(5);
//延时5ms ,给硬件一点反应时间
//连续三次,确保初始化成功
WriteInstruction(0x0c);
显示开,无光标,光标不闪烁
WriteInstruction(0x06);
光标右移,字符不移
WriteInstruction(0x01);
//清屏幕指令,将以前的显示内容清除
/******************************************************************************
显示速度提示符
*********************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电机 控制
![提示](https://static.bdocx.com/images/bang_tan.gif)