51单片机控制无刷直流电机程序

合集下载

51单片机直流电机正反转程序

51单片机直流电机正反转程序

51单片机直流电机正反转程序在工业自动化、机器人、电子设备等领域,直流电机是一种常见的电动机。

直流电机具有结构简单、转速范围广、转矩大、控制方便等优点,因此被广泛应用。

在直流电机的控制中,正反转是一种常见的操作。

本文将介绍如何使用51单片机控制直流电机的正反转。

1. 直流电机的原理直流电机是一种将电能转化为机械能的电动机。

它的基本结构由定子、转子、电刷和电枢组成。

当电枢通电时,电枢内部会产生磁场,与定子磁场相互作用,从而产生转矩,使转子转动。

电刷则用来改变电极的极性,使电极的磁场方向与定子磁场方向相互作用,从而使电机正反转。

2. 51单片机控制直流电机的原理51单片机是一种常用的微控制器,具有体积小、功耗低、易于编程等优点。

在控制直流电机时,我们可以使用51单片机来控制电机的正反转。

具体实现方法是通过控制电机的电极极性来改变电机的转向。

3. 51单片机直流电机正反转程序下面是一段使用51单片机控制直流电机正反转的程序:#include <reg52.h>sbit IN1 = P1^0; //定义IN1引脚sbit IN2 = P1^1; //定义IN2引脚void delay(unsigned int t) //延时函数 {unsigned int i, j;for(i=0; i<t; i++)for(j=0; j<125; j++);}void main(){while(1){IN1 = 1; //IN1引脚输出高电平 IN2 = 0; //IN2引脚输出低电平 delay(1000); //延时1秒IN1 = 0; //IN1引脚输出低电平 IN2 = 1; //IN2引脚输出高电平 delay(1000); //延时1秒}```上述程序中,我们使用了P1口的0、1引脚来控制电机的正反转。

当IN1引脚输出高电平、IN2引脚输出低电平时,电机正转;当IN1引脚输出低电平、IN2引脚输出高电平时,电机反转。

51单片机控制直流电机

51单片机控制直流电机
This project is a speed governing system of the pulse width of DC motor controlled by microcontroller AT89S52 and L298.Making the use of the chip of AT89S52 ,I design a controlling system of DC motor of low cost.It can simplify the system structure reduce system cost,strengthen system performance and meet more needs from more applications.And the system can control the corotation,reversal,scraming,accelerating and slowdown of motors and display the duty ratio of PWM on LCD in real time.
图1-1 直流电动机电路模型
1.2单片机及微处理器控制系统的发展
单片微型计算机的诞生是计算机发展史上的一个新的里程碑。近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。这是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。

基于51单片机控制直流电机的设计

基于51单片机控制直流电机的设计

可以实现的功能是:按下左转键则开始向左转动按下右转键则向右转动按下停止键则开始逐渐停止转动按下调速键一次则会加速一档按下调速键二次则会加速二档按下调速键三次则会加速三档按下调速键四次则会加速四档按下调速键五次则会回到最初速度重新记档位设计思路:直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的。

直流电机的驱动电路要有过流保护作用,图中的二极管就直到这个作用,另外电机的驱动电流是比较大的所以需要用三极管来放大电流。

程序的关键就是如何实现占空比的调整,这个可以通过对51单片机定时器重装初值进行改变,从而改变时间。

用51实现PWM信号的输出,相对麻烦点,要是AVR就可以方便地实现PWM信号,由见51单片机的局限性与AVR单片机的优势。

原理图详细程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit PW1=P2^0 ;sbit PW2=P2^1 ; //控制电机的两个输入sbit accelerate=P2^2 ; //调速按键sbit stop=P2^3 ; //停止按键sbit left=P2^4 ; //左转按键sbit right=P2^5 ; //右转按键#define right_turn PW1=0;PW2=1 //顺时针转动#define left_turn PW1=1;PW2=0 //逆向转动#define end_turn PW1=1;PW2=1 //停转uint t0=25000,t1=25000; //初始时占空比为50%uint a=25000; // 设置定时器装载初值 25ms 设定频率为20Hzuchar flag=1; //此标志用于选择不同的装载初值uchar dflag; //左右转标志uchar count; //用来标志速度档位void keyscan(); //键盘扫描void delay(uchar z);void time_init(); //定时器的初始化void adjust_speed(); //通过调整占空比来调整速度void main(){time_init(); //定时器的初始化while(1){keyscan(); //不断扫描键盘程序,以便及时作出相应的响应}}void timer0() interrupt 1 using 0{if(flag){flag=0;end_turn;a=t0; //t0的大小决定着低电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256; //重装载初值}else{flag=1; //这个标志起到交替输出高低电平的作用if(dflag==0){right_turn; //右转}else{left_turn; //左转}a=t1; //t1的大小决定着高电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256; //重装载初值}}void time_init(){TMOD=0x01; //工作方式寄存器软件起动定时器定时器功能方式1 定时器0TH0=(65536-a)/256;TL0=(65536-a)%256; //装载初值ET0=1; //开启定时器中断使能EA=1; // 开启总中断TR0=0;}void delay(uchar z) //在12M下延时z毫秒{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void keyscan(){if(stop==0){TR0=0; //关闭定时器0 即可停止转动end_turn;}if(left==0){TR0=1;dflag=1; //转向标志置位则左转}if(right==0){TR0=1;dflag=0; //转向标志复位则右转}if(accelerate==0){delay(5) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手count++;if(count==1){t0=20000;t1=30000; //占空比为百分之60}if(count==2){t0=15000;t1=35000; //占空比为百分之70 }if(count==3){t0=10000;t1=40000; //占空比为百分之80 }if(count==4){t0=5000;t1=45000; //占空比为百分之90 }if(count==5){count=0;}}}}。

51单片机怎么驱动直流电机c语言

51单片机怎么驱动直流电机c语言

51单片机怎么驱动直流电机c语言有3种方案:第一种,通过PWM脉宽调制输出方法控制转速,控制占空比的大小可以实现调速!第二种,通过AD转换的方法控制直流电机的电压第三种,用xtr115程控电流源来控制直流电机(类似第二种方法)如果以上的驱动能力不够的话再加上一个电压跟随器!一下以L298电机驱动电路为例。

L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动,设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达)和开关电源晶体管。

内部包含4通道逻辑驱动电路,其额定工作电流为 1 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 36 V;Vs 电压最大值也是 36 V。

L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。

当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;;IN1与IN2相同时,电机快速停止。

当使能端为低电平时,电动机停止转动。

在对直流电动机电压的控制和驱动中,半导体功率器件(L298)在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式在线性放大驱动方式。

半导体功率器件工作在线性区优点是控制原理简单,输出波动小,线性好,对邻近电路干扰小,缺点为功率器件工作在线性区,功率低和散热问题严重。

开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。

#include#include#define uchar unsigned char#define uint unsigned intsbit MOTOR_A_1=P3^6;sbit MOTOR_A_2=P3^7;sbit k1=P1^0; //定义k1为p1.0口sbit k2=P1^1; //定义k2为p1.1口sbit k3=P1^2; //定义k3为p1.2口sbit k4=P1^3; //定义k4为p1.3口uchar T=0; //定时标记uchar W=0; //脉宽值 0~100uchar A=0; //方向标记 0,1uchar k=0; //按键标记uchar i=0; //计数变量uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar code table2[]={0xfe,0xfb,0xfd,0xf7}; void delayms(uint t);void disp(void){P2=table2[3];P0=table1[W]; //显示占空比个位delayms(1); //延时1msP2=0xff; //P0清1P2=table2[2];P0=table1[W/100]; //显示占空比百位delayms(1); //延时1msP2=0xff; //P0清1P2=table2[1];P0=table1[W/10]; //显示占空比十位delayms(1); //延时1msP2=0xff; //P0清1P2=table2[0];P0=table1[A]; //显示方向delayms(1); //延时1msP2=0xff; //P0清1}void init(void){//启动中断TMOD=0x01;EA=1;ET0=1;TR0=1;//设置定时时间TH0=0xff;TL0=0xf6;}void timer0() interrupt 1{//重置定时器时间TH0=0xff;TL0=0xf6;T++; //定时标记加1disp(); //数码管显示if(k==0){if(T》W)MOTOR_A_1 =0;elseMOTOR_A_1 =1;}else{if(T》W)MOTOR_A_2 =0;elseMOTOR_A_2 =1;}if(T==100)T=0;}void delayms(uint t){uchar j;while(t--){for(j=0;j《250;j++) //循环250次{_nop_(); //系统延时_nop_(); //系统延时_nop_(); //系统延时_nop_(); //系统延时}}}void key(void) //按键判断程序{if(k1==0) //按键1按下{while(k1==0); //按键1抬起if(W==100) //如果脉宽为100 W=0; //脉宽置0elseW+=1; //否则加1}else if(k2==0) //按键2按下{while(k2==0); //按键2抬起if(W==0) //如果脉宽为0W=100; //脉宽设置成100elseW-=1; //否则减1}else if(k3==0) //按键3按下{while(k3==0); //按键3抬起A=!A; //方向标记取反k=!k; //按键标记取反}else if(k4==0) //按键4按下{while(k4==0); //按键4抬起W=0; //脉宽清0}}void main(void){init(); /////////系统初始化while(1){if(k==0)MOTOR_A_2=0;elseMOTOR_A_1=0;key(); ////////查询按键}}。

51单片机控制直流电机PWM调速

51单片机控制直流电机PWM调速

51单片机控制直流电机PWM调速
实验目的
1.掌握脉宽调制(PWM) 的方法。

2.用程序实现脉宽调制,并对直流电机进行调速控制。

实验设备
PC 机一台,单片机最小系统,驱动板、直流电机,连接导线等
实验原理
1.PWM (Pulse Width Modulation) 简称脉宽调制。

即,通过改变输出脉冲
的占空比,实现对直流电机进行调压调速控制。

2.实验线路图:
实验内容:
1. 利用实验室提供的单片机应用系统及直流电机驱动电路板,编制控制程序,实现直流电机PWM调速控制。

实验思考题
本实验中是通过改变脉冲的占空比,周期T 不变的方法来改变电机转速的,还有什么办法能改变电机的转速,应该怎么实现?
附件:
L298简介:
L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。

一个基于51单片机控制直流电机的设计

一个基于51单片机控制直流电机的设计

一个基于51单片机控制直流电机的设计1.引言直流电机是一种常见的电机类型,广泛应用于工业自动化、机械设备和家电等领域。

其具有结构简单、可靠性高、调速性能好等特点,在控制方面也较为简单。

本文将介绍一种基于51单片机控制直流电机的设计方案。

2.设计原理2.1直流电机控制原理直流电机的转速和转向可以通过调整电机的电流和极性来实现。

通常,通过PWM信号来控制电机的转速,通过电机驱动芯片来控制电机的转向。

2.251单片机51单片机是一种广泛应用的8位单片机,具有强大的计算和控制能力。

其可以通过IO口产生PWM信号,以控制电机的转速,同时还可以通过IO口控制电机驱动芯片的输入信号,实现电机的转向控制。

3.系统设计3.1硬件设计3.1.1主控板设计主控板采用51单片机作为核心控制器,通过IO口输出PWM信号控制电机的转速,并通过IO口输出电机方向控制信号。

主控板还需要提供电源输入、串口通信接口等。

3.1.2电机驱动设计电机驱动采用专用的直流电机驱动芯片,通过控制其输入信号,实现对电机的转向控制。

电机驱动芯片还需要提供输入信号的滤波、保护等功能。

3.2软件设计3.2.1PWM信号生成通过51单片机的定时器/计数器模块,可以生成PWM信号。

根据所需的转速,可以调整定时器的计数周期和占空比,控制PWM信号的频率和占空比。

3.2.2方向控制通过控制51单片机的IO口输出电平,可以控制电机驱动芯片的输入信号,实现电机的正转或反转。

具体的电平和控制方式可通过电机驱动芯片的手册进行确定。

3.3系统测试在完成硬件和软件设计后,需要对整个系统进行测试。

首先可以通过示波器检查PWM信号的频率和占空比是否符合要求;其次,通过改变指令,测试电机的转向控制是否正常工作;最后,可以通过改变PWM信号的占空比,测试电机的转速控制是否准确。

4.结论本文介绍了一种基于51单片机控制直流电机的设计方案,通过生成PWM信号控制电机转速和通过IO口输出电平来控制电机的转向。

51单片机直流无刷电机控制.

51单片机直流无刷电机控制.

基于MCS-51单片机控制直流无刷电动机学号:3100501044班级:电气1002姓名:王辉军摘要直流无刷电机是同步电机的一种,由电动机本体、位置传感器和电子开关线路三部分组成。

其定子绕组一般制成多相(三相、四相、五相不等),转子由永久磁钢按一定极对数(2p=2,4,…)组成。

电机转子的转速受电机定子旋转磁场的速度及转子极数(P)影响:N=120.f / P。

在转子极数固定情况下,改变定子旋转磁场的频率就可以改变转子的转速。

直流无刷电机即是将同步电机加上电子式控制(驱动器),控制定子旋转磁场的频率并将电机转子的转速回授至控制中心反复校正,以期达到接近直流电机特性的方式。

也就是说直流无刷电机能够在额定负载范围内当负载变化时仍可以控制电机转子维持一定的转速。

MCS-51单片机是美国英特尔公司生产的一系列单片机的总称,是一种集成电路芯片,采用超大规模技术把具有数据处理能力的微处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入输出接口电路、定时计算器、串行通信口、脉宽调制电路、A/D转换器等电路集成到一块半导体硅片上,这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

本论文将介绍基于MCS-51单片机控制直流无刷电动机的设计,它可以实现控制直流无刷电动机的启动、停止、急停、正反转、加减速等功能。

关键词:单片机,直流无刷电动机,控制系统直流无刷电动机是在直流电动机的基础之上发展而来的,它是步进电动机的一种,继承了直流电动机的启动转矩大、调速性能好等特点克服了需要换向器的缺点在交通工具、家用电器及中小功率工业市场占有重要的地位。

直流无刷电动机不仅在电动自行车、电动摩托车、电动汽车上有着广泛的应用,而且在新一代的空调机、洗衣机、电冰箱、吸尘器,空气净化器等家用电器中也有逐步采用的趋势,尤其是随着微电子技术的发展,直流无刷电动机逐渐占有原来异步电动机变频调速的领域,这就使得直流无刷电动机的应用范围越来越广。

基于51单片机的无刷直流电动机控制器设计说明

基于51单片机的无刷直流电动机控制器设计说明
基于51单片机的无刷直流电动机控制器设计
系 别:机电与自动化学院
专 业 班:电气工程及其自动化0702班
姓 名:
学 号:
指导教师:
2010年5月
基于51单片机的无刷直流电动机
控制器设计
TheDesign ofBrushless DCMotorControllerBased on MCS-51Singlechip
绪 论
传统的直流电机一直在电机驱动系统中占据主导地位,但由于其本身固有的机械换向器和电刷导致电机容量有限、噪音大和可靠性不高,因而迫使人们探索低噪音、高效率并且大容量的驱动电机。随着电力电子技术和微控制技术的迅猛发展而成熟起来的直流无刷电机体积小、重量轻、效率高、噪音低、容量大且可靠性高,从而极有希望代替传统的直流电机成为电机驱动系统的主流。
摘 要
近年来,无刷直流电动机愈来愈多地在很多领域得到应用,它除了保持有刷直流电动优越的起动性能和调速性能以外,其最大的特点,就是没有换向器和电刷组成的机械接触结构,因而具有寿命长、噪声低、运行可靠、维护简便等一系列优点,且由于其转速不受机械换向的限制,可在宽广的范围内平滑地调速。例如在电动自行车上应用无刷直流电动机来取代原来的有刷直流电动机,由于采用了电子无接触式换向,不仅延长了电机的使用寿命,而且调速方便,易于控制,运行平稳。
Recently,brushless DC motor has been applied in many area.Besides the good performance of startup and speed control,its remarkable characteristic is that there is no commutator and brush。So the brushless DC motor has some advantages such as long life,low noise,reliable operation and easy maintenance.Its speed Can be regulated in a large range smoothly because of no limitation of mechanical commutator.For the electric bicycle,the motor with brush has been replaced by the brushless one.Due to the commutation without touch,the life of motor is prolonged and the motor is easy to be controlled.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档