单片机实现直流电机控制的应用实例
直流电机的单向控制
直流电机的单向控制较为简单,可以通过开关的通断来接通和断开直流电源,实现电机的启动与停止控制,开关控制直流电机如图9-2所示。也可以通过三极管、场效应管、继电器等对直流电机的通断进行控制,采用三极管控制直流电机的电路如图9-3所示,图中的二极管为续流二极管,起到保护三极管的作用。
图9-2 开关控制直流电机电路图
图9-3 三极管控制直流电机电路图
提示
单片机控制直流电机的实际应用电路中,为了降低电机运行对单片机电源的影响,往往会采用光电耦合器件进行光电隔离。
【例9-1】 通过按键实现直流电机的停启控制
按键控制直流电机停启的电路如图9-4所示,通过P3.6口按键触发启动直流电机,P3.7口的按键触发停止直流电机的运行。由图9-4可知,当P1.0输出高电平“1”时,NPN型三极管导通,直流电机得电转动;当P1.0输出低电平“0”时,NPN型三极管截止,直流电机停止转动。
图9-4 按键控制直流电机停启电路图
C51程序如下:
直流电机的双向控制
直流电机的双向控制原理就是使加在直流电机两端的电源电压的极性可以实现切换。通常采用H桥电路进行控制。H桥控制的示意如图9-5所示,有1~4四个开关的不同状态实现电机的停止、正转、反转控制。
当四个开关均断开时,直流电机不得电,处于停止状态。
当开关1与4接通,开关2与3断开时,电流由左向右流过直流电机,电机处于正转状态。
当开关2与3接通,开关1与4断开时,电流由右向左流过直流电机,电机处于反转状态。
图9-5 H桥实现直流电机双向控制的示意图
【例9-2】 通过按键实现直流电机的正反转及停止控制
通过按键控制直流电机正反转及停止控制的电路如图9-6所示。由S1键的触发实现电机的正转运行,S2键的触发实现电机的反转运行,S3键的触发实现电机的停止控制。
通过对图9-6进行分析,可知通过对单片机的P1.0、P1.1口的控制即可实现电机的停止、正转和反转控制,P1.0、P1.1在不同状态下电路各部分的工作状态及电机状态如表9-1所示。
图9-6 按键控制直流电机正反转及停止控制的电路图
表9-1 P1.0、P1.1口控制过程及电路状态表
C51程序如下:
单片机控制步进电机的应用实例
【例9-3】 采用1-2 相励磁法实现电机的正转控制。
单片机的I/O口驱动电流较小,一般无法直接驱动步进电机,图9-10采用ULN2003作为步进电机的驱动芯片,ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关状态时承受50V的电压,输出还可以在高负载电流并行运行。只需按表9-2(c)的8个步序向P1口发送数据,通过ULN2003的驱动,即可实现步进电机按1-2相励磁法正转运行。
图9-10 步进电机驱动控制电路图
C51程序如下:
提示
上面的delay( )程序可参考之前例子中的延时程序编写,这里不再重复。
利用相同的程序编写方式可以实现1相励磁和2相励磁的电机控制。
【例9-4】 步进电机的正反转控制
利用接在单片机P3.7口的开关对步进电机的正反转进行控制,当开关闭合时,步进电机正转运行,当开关断开时,步进电机反转运行。此处采用1相励磁法。步进电机正反转控制电路如图9-11所示。
图9-11 步进电机正反转控制电路图
C51程序如下:
【例9-5】 利用查表方式通过两组开关实现三种励磁状态的切换。
两组开关实现三种励磁状态切换的电路如图9-12所示。利用接在P3.0、P3.1口的两个开关的四种状态实现步进电机的1相励磁、2相励磁、1-2相励磁及停止状态的切换。开关实现步进电机运行状态切换如表9-3所示。
图9-12 两组开关实现三种励磁状态切换的电路图
表9-3 开关实现步进电机运行状态切换表
由于三种励磁状态每拍的状态均为已知,在软件设计中,可以将这些状态预先存储到3个数组当中,根据2组开关的状态去查询对应的数组即可实现步进电机励磁方式的切换。
C51程序如下:
相关问答
谁能介绍下几种 单片机 产品的 应用 实例?你的问题也太笼统了,单片机无论什么型号,都是起控制功能的作用,像人的大脑一样。通过搭接不同的功能外设构成不同的产品。单片机应用很广泛,生活中处处可见...
怎样做能让 单片机 掉电了还能保存数据-ZOL问答1、要在单片机供电电路前面加个纽扣电池或者加个法拉电容。2、纽扣电池的方式是不丢失数据,不需要保存到EEPROM。3、法拉电容可以用来不丢失数据(一般可以保存...
基于 单片机的 电梯控制系统难不难做?基于单片机的电梯控制系统,其原理实现并不难,通过采集按键选择停留的楼层,单片机系统结合楼层信息,控制电动机转动,控制电梯停留在相应的楼层。电梯控制系统...
单片机 中断程序的编程实例?下面是一个简单的单片机中断程序的编程实例,以8051单片机为例:```assemblyORG0H;程序从地址0开始MOVA,#0FFH;将A寄存器初始化为0xFFMOVP1,...
单片机 如何连接华为云?你好,要将单片机连接到华为云,可以按照以下步骤进行操作:1.创建华为云账号并登录:前往华为云官方网站,注册一个账号并登录。2.创建物联网平台实例:在华...
51 单片机 protues仿真学习:[22]串口通信实例?1、打开keil软件,在上面编写好所需要的代码。2、在软件上找到图示的图标(optionfortarget),单击之后,会出现一个图示对话框。3、然后点击output,也就是...1...
单片机 是如何控制步进电机扎旋转的?voidKeyDriver(){unsignedchari,j;staticunsignedcharbackup[4][4]={//按键值备份,保存前一次的值{1,1,1...
单片机的 DB指令使用-ZOL问答貌似用在数据表的比较多,你那个应该这样写ORG0060HTABLE:DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H后面的00h-00h是你想要赋的值什么...
推荐几本学习 单片机的 书籍?以下是几本推荐的学习单片机的书籍:1.《51单片机C语言程序设计与实践》:这本书详细介绍了51单片机的原理和应用,并提供了大量的实例和案例来帮助读者理解和掌...
点亮 单片机 中任意一个流水灯亮灭的C语言程序该如何做呢?点亮单片机中任意一个流水灯亮灭的C语言程序该如何做呢?实现任意一个流水灯亮灭的程序非常好编程呀,这是入门级水准。首先我们规划好硬件电路部分,在这里使...