【单片机】11-步进电机和直流电机

这篇具有很好参考价值的文章主要介绍了【单片机】11-步进电机和直流电机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

1.直流电机

1.什么是电机

电能转换为动能

2.常见电机

(1)交流电机【大功率】:两相【200W左右】,三相【1000W左右】

(2)直流电机【小功率】:永磁【真正的磁铁】,励磁【电磁铁】

(3)步进电机【精确控制功率】,伺服电机【非常精确功率】

3.直流电机详解

(1)外观

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

(2)接线和工作原理

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

在电池位置有VCC和GND

(3)直流电机的驱动问题:不能用IO口直接驱动

4.直流电机实验

(1)直流电机直接接在开发板的主板的VCC和GND引出接口上看电机是否转动,还可以调换VCC和GND看是否反转

(2)单片机的IO口的数字口,本身的驱动能力非常小(最多20mA级别),这个驱动能力是带不动电动机的。

(3)一般单片机需要实验专门的驱动芯片来驱动电机。驱动芯片的作用就是把单片机的小电流的控制信号转成逻辑上相同的大电流的驱动源。这就是所谓的弱电控制强电。

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

#include<reg51.h>

/**

	驱动电机驱动直流电机
*/

sbit ALine=P0^0;
sbit BLine=P0^1;

void main(){

	ALine=1;
	BLine=0;
	//实际上不会动,因为电流不足
	while(1);
	
}

2.步进电机理论

1.什么是步进电机

1.外观

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

2.功能特点

(1)步进(step)的动起来,可以控制自己转多少

(2)不是直接给接电就动,要有规律的电才可以动

(3)以步长为单位,不断的转

(4)可以控制转多少就停

3.操作接口

(1)四线步进电机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

2.步距角:步长

(1)就是精度,360°的⚪,可以走多少°。

(2)步长==精度

(3)步进电机有一个固有步距角,这个参数和步进电机本身有关的。

(4)步进电机一般情况下只能以固有步距角的整数倍来运动,这一个固有步距角的移动就叫一个节拍。

(5)电机还有一个比固有步距角更小的运动方法,这种方法叫细分,由电机驱动器来支持的。

3.相数

(1)步进电机绕阻的组数

(2)相数多的步距角越小,越精确,引出的线越多

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

4.细分

(1)电机还有一个比固有步距角更小的运动方法,这种方法叫细分,由电机驱动器来支持的。

5.极性

单极性步进电机和双极性步进电机有什么区别? – AKT Motor and Drive

单极性和双极性是步进电机最常用的两种驱动架构

有一些可以通过2种进行驱动。

我们拿到的步进电机中只有电路(线路),没有驱动。真正的驱动在开发板上。

1.单极性

单极性驱动电路使用四颗晶体管来驱动步进电机的两组相位,电机结构则如图1所示包含两组带有中间抽头的线圈,整个电机共有六条线与外界连接。这类电机有时又称为四相电机,但这种称呼容易令人混淆又不正确,因为它其实只有两个相位,精确的说法应是双相位六线式步进电机。六线式步进电机虽又称为单极性步进电机,实际上却能同时使用单极性或双极性驱动电路。

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

2.双极性

双极性步进电机的驱动电路则如图2所示,它会使用八颗晶体管来驱动两组相位。双极性驱动电路可以同时驱动四线式或六线式步进电机,虽然四线式电机只能使用双极性驱动电路,它却能大幅降低量产型应用的成本。双极性步进电机驱动电路的晶体管数目是单极性驱动电路的两倍,其中四颗下端晶体管通常是由微控制器直接驱动,上端晶体管则需要成本较高的上端驱动电路。双极性驱动电路的晶体管只需承受电机电压,所以它不像单极性驱动电路一样需要箝位电路。

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

6.拍数

单相和双相的带载能力不同

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

1.单相四拍

单相:一边的线在工作

A/   B   A    B/        正转

B/    A    B    A/      反转   

解释:想要动起来就在一端有电压差,另外一端没有电压差

A/   B   A    B/     

四根线上电平

A/   A    B    B/   

0     1    0     0               第一拍

0      0   1    0                第二拍

1      0    0   0                第三拍

0      0    0   1                第四拍

4个节拍加起来就是一个完整的周期,按照这个周期给步进电机供电,则步进电机就会转动1个步距角(一个步长)。

2.双相四拍

双相:两边的线在工作

A/B   AB    AB/     A/B/        正转

时序:A/B   AB    AB/     A/B/

            1       0        0         0

             0       1        0        0

             0        0       1         0

             0         0        0        1

               A        A/        B        B/

A/B         0          1        1          0                第一拍

AB         1            0       1       0                  第二拍

AB/         1          0        0          1                第三拍

A/B/         0          1        0          1               第四拍

3.半步八拍

A/    A/B     B    AB    A      AB/     B/      A/B/【实际上就是单相和双相交互】

7.控制器和驱动器

(1)一套步进电机的系统需要三部分:控制器【控制信号】+驱动器【功率部件】+步进电机【负责转动】

控制器

(1)控制器就是我们的单片机

(2)控制器负责产生时序信号

驱动器

(1)驱动器一般是接在单片机的IO口上面的专用的电机驱动芯片(比如我们开发板上的TC1508S)

(2)驱动器负责将时序信号转成功率驱动信号给步进电机用

7.结论

我们使用的是两相步进电机

4.开发板原理图分析说明

1.原理图分析

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

(1)原理图中INA,INB,INC,IND将来要接单片机的IO口,单片机是控制器的,通过单片机的IO口给驱动器芯片输入1或者0的控制信号,控制信号经过TC1508S的转换,从OUTA,OUTB,OUTC,OUTD四个脚输出具有驱动步进电机能力的驱动信号。【将控制信号转换为驱动信号,实际上就是将电流放大输出】

(2)接线:比如可以用P0端口的4个引脚(实际用P0.0-P0.3)接INA,INB,INC,IND

(3)输出端本来符号是OUTA,OUTB,OUTC,OUTD,但是开发板上实际是对应则:OA,OB,OC,OD。所以这里有一个对应关系:OUTA-OA,OUTB-OB,OUTC-OC,OUTD-OD。

(4)但是步进电机上是A,A-,B,B-,让我们方便接线不会接错。

(5)结合之前讲的步进电机的原理,可知:A-和A+是一个相线线圈的2端,B-和B+是另外一个线圈。

2.电机驱动芯片数据手册

https://datasheet.lcsc.com/lcsc/2202252130_Shenzhen-Fuman-Elec-TC1508S_C89480.pdf

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

5.步进电机编程实践

1.接线

(1)P0端口的P0.0-P0.3接电机驱动芯片TX1508S的4个输入端

(2)TC1508S的4个输出端接步进电机(按照丝印符号相对于即可)

(3)根据上面的接线,实际得到的接线逻辑是:P0.0和P0.1对应的一组线圈,而且P0.2和P0.3对应另一组线圈。【注意A+对应OA,A-对应OB,B+对应OC,B-对应OD

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

电机可以直接接到开发板,51单片机,单片机,嵌入式硬件,51单片机

2.单相四排方式驱动

1.时序编程

A/    B    A    B/

#include<reg51.h>

/**

	步进电机编程实践1:单相四排
*/

sbit APositive=P0^0;
sbit ANegative=P0^1;
sbit BPositive=P0^2;
sbit BNegative=P0^3;

void delay(unsigned char i){  //i越大,延迟时间越大
	unsigned char a,b;
	for(a=i;a>0;a--){
		for(b=240;b>0;b--);
	}
}



void main(){

	while(1){
		//循环内实现1个周期
		//一个周期其实就是各个节拍依次排列构成的,注意节拍之间要延时
		//延时时间---控制速度
		//单相四拍
		//第一拍:  [A/  B    A    B/]
		//           1   0    0     0
		APositive=0;
		ANegative=1;
		BPositive=0;   //等于1也可以,只要两个相同即可
		BNegative=0;   //等于1也可以,只要两个相同即可
		delay(30);
		
		//第二拍:  [A/  B    A    B/]
		//           0   1    0     0
		APositive=0;
		ANegative=0;
		BPositive=1;   //等于1也可以,只要两个相同即可
		BNegative=0;   //等于1也可以,只要两个相同即可
		delay(30);
		
		
		//第3拍:  [A/  B    A    B/]
		//           0   0    1     0
		APositive=1;
		ANegative=0;
		BPositive=0;   //等于1也可以,只要两个相同即可
		BNegative=0;   //等于1也可以,只要两个相同即可
		delay(30);
		
		
		//第3拍:  [A/  B    A    B/]
		//           0   0    0   1
		APositive=0;
		ANegative=0;
		BPositive=0;   //等于1也可以,只要两个相同即可
		BNegative=1;   //等于1也可以,只要两个相同即可
		delay(30);
		
	}
	
}

2.转速控制

转速是由脉冲信号控制的频率控制的,其实就是delay控制的

延时时间越短,转速越快

3.正转和反转

将时序进行反转

A   A/   B    B/

B/   B    A/    A

3.双相四拍方式驱动

#include<reg51.h>

/**

	步进电机编程实践2:双相四拍方式驱动
*/

sbit APositive=P0^0;
sbit ANegative=P0^1;
sbit BPositive=P0^2;
sbit BNegative=P0^3;

//延时时间
//延时时间越短,转速越快
#define TIME 30



void delay(unsigned char i){  //i越大,延迟时间越大
	unsigned char a,b;
	for(a=i;a>0;a--){
		for(b=240;b>0;b--);
	}
}



void main(){

	while(1){
		//循环内实现1个周期
		//一个周期其实就是各个节拍依次排列构成的,注意节拍之间要延时
		//延时时间---控制速度
		//单相四拍
		
		/*
			正序旋转
			逆序就是将节拍反过来
		
		*/
		
		//第一拍:  [A/B  AB    AB/   A/B/]
		//           1   0    0     0
		APositive=0;
		ANegative=1;
		BPositive=1;   
		BNegative=0;   
		delay(TIME);
		
		//第二拍:  [A/B  AB    AB/   A/B/]
		//           0   1    0     0
		APositive=1;
		ANegative=0;
		BPositive=1;   
		BNegative=0;   
		delay(TIME);
		
		
		//第3拍:  [A/B  AB    AB/   A/B/]
		//           0   0    1     0
		APositive=1;
		ANegative=0;
		BPositive=0;   
		BNegative=1;   
		delay(TIME);
		
		
		//第3拍:  [A/B  AB    AB/   A/B/]
		//           0   0    0   1
		APositive=0;
		ANegative=1;
		BPositive=0;   
		BNegative=1;   
		delay(TIME);
		
		
	}
	
}

4.半步八拍方式驱动

速度越慢,动力越大文章来源地址https://www.toymoban.com/news/detail-778641.html

#include<reg51.h>

/**

	步进电机编程实践3:半步八拍方式驱动
*/

sbit APositive=P0^0;
sbit ANegative=P0^1;
sbit BPositive=P0^2;
sbit BNegative=P0^3;

//延时时间
//延时时间越短,转速越快
#define TIME 3


void delay(unsigned char i){  //i越大,延迟时间越大
	unsigned char a,b;
	for(a=i;a>0;a--){
		for(b=240;b>0;b--);
	}
}



void main(){

	while(1){
		//循环内实现1个周期
		//一个周期其实就是各个节拍依次排列构成的,注意节拍之间要延时
		//延时时间---控制速度
		//单相四拍
		
		/*
			正序旋转
			逆序就是将节拍反过来
		
		*/
		
		//第一拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           1    0    0    0     0     0     0       0
		APositive=1;
		ANegative=0;
		BPositive=0;   
		BNegative=0;   
		delay(TIME);
	
		
		//第2拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//          0   1    0    0     0     0     0       0
		APositive=0;
		ANegative=1;
		BPositive=1;   
		BNegative=0;   
		delay(TIME);
	
	
		//第3拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           0    0    1    0     0     0     0       0
		APositive=0;
		ANegative=0;
		BPositive=1;   
		BNegative=0;   
		delay(TIME);
	
	
			//第4拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           0    0    0      1     0     0     0       0
		APositive=1;
		ANegative=0;
		BPositive=1;   
		BNegative=0;   
		delay(TIME);
	
	
			//第5拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           0    0    0    0     1     0     0       0
		APositive=1;
		ANegative=0;
		BPositive=0;   
		BNegative=0;   
		delay(TIME);
	
	
			//第6拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           0    0    0    0     0     1     0       0
		APositive=1;
		ANegative=0;
		BPositive=1;   
		BNegative=1;   
		delay(TIME);
	
	
			//第7拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           0    0    0    0     0     0     1       0
		APositive=0;
		ANegative=0;
		BPositive=0;   
		BNegative=1;   
		delay(TIME);
	
	
	
			//第8拍:  [A   A/B   B    AB    A    AB/    B/     A/B/]
		//           0    0    0    0     0     0     0       1
		APositive=0;
		ANegative=1;
		BPositive=0;   
		BNegative=1;   
		delay(TIME);

		
	}
	
}

到了这里,关于【单片机】11-步进电机和直流电机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机——步进电机实验,小白讲解,相互学习

    步进电机简介:         步进电机是将电脉冲信号转变为角位移或多线位移的开源控制元件。在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性的关系的存在

    2024年02月04日
    浏览(27)
  • 基于51单片机的步进电机驱动,亲测无误

    这一次要分享的项目是最近接单做的一个小玩意儿,基于51单片机的步进电机驱动。最近积压了两个月的小项目会在后面陆续发出,好了回归正题。本次步进电机驱动的话主要实现的功能就是实现: 步进电机的加速和减速,正转反转和开启或者停止工作。用LCD1602显示当前工作

    2023年04月09日
    浏览(37)
  • 【Proteus仿真】【51单片机】步进电机控制系统设计

    本项目使用Proteus8仿真51单片机控制器,使用ULN2003电机模块、LCD1602模块、按键模块等。 主要功能: 系统运行后,LCD1602显示电机当前运行档位、方向、状态。 可通过按键K4启动与停止,按键K1加速、按键K2减速,按键K3换向;档位可在1-5挡。 最终可实现: 按键功能:具有加速

    2024年02月12日
    浏览(37)
  • 51单片机步进电机角度控制详解(免费提供代码+仿真)

    我个人认为,步进电机的基本原理和介绍看看其他博主的介绍就好了。我比较希望讲一下我对步进电机的关于自己一种理解方式,可能与真正步进电机的原理差的有点大。下面还是给一下我推荐的一些博主对步进电机的介绍文章。 百度步进电机链接 步进电机驱动及原理—s

    2023年04月18日
    浏览(35)
  • 基于单片机的步进电机控制系统设计与实现

    目 录 1 引言 1 2 总体设计方案 2 2.1 系统设计原理 2 2.2 总体设计框图 2 3系统硬件模块的组成 3 3.1单片机控制模块 3 3.1.1 STC89C52主要结构 3 3.1.2 STC89C52功能特性描述 3 3.1.3 时钟电路 6 3.1.4复位电路 6 3.2 步进电机模块 7 3.2.1 步进电机简介 7 3.2.2步进电机的结构 8 3.2.3 28BYJ-48步进电机

    2024年02月04日
    浏览(52)
  • 51单片机控制步进电机启停,正反转速度——入门

    实验器件 STC89C52RC的学习板子一个 DC 5V 4相5线步进电机 28YBJ-48 减速步进电机一个 元器件连接: 51单片机开发板  电气原理图     实验现象:下载程序后; 当按下KEY1键可调节电机旋转方向; 当按下KEY2键,电机加速; 当按下KEY3键,电机减速; 按下KEY4的时候,电机启动/停止;

    2024年02月11日
    浏览(33)
  • 51单片机的步进电机控制系统(仿真+程序+报告+原理图)

    该系统由AT89C51单片机+数码管模块+步进电机模块+按键模块构成。 可实现功能: 1、按键控制步进电机正反转、加减速、停止; 2、2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位(共9个档位); 3、4个红色LED,指示电机的转速。 protues 仿真使用的是8.10版本,由于

    2024年02月11日
    浏览(29)
  • 51单片机双轴太阳能追光追日系统ULN2003步进电机

    功能介绍:    

    2023年04月09日
    浏览(42)
  • 【51单片机Keil+Proteus8.9】控制步进电机+LCD1602显示状态

    步进电机控制 设计思路 电路设计: 选用AT89C51单片机作为电路核心部件,外加LM016L液晶显示屏作为显示,显示步进电机的Fast,Slow,Stop的三个状态 将AT89C51单片机所选引脚与LM016L控制引脚相连,再将数据通过引脚与LCD接收引脚相连。 通过AT89C51单片机P0^0和P0^2两个引脚引出两个

    2024年01月20日
    浏览(47)
  • 7-3、S曲线生成器【51单片机控制步进电机-TB6600系列】

    摘要 :本节介绍步进电机S曲线生成器的计算以及使用 一.计算原理 根据上一节内容,已经计算了一条任意S曲线的函数。在步进电机S曲线加减速的控制中,需要的S曲线如图1所示,横轴为时间,纵轴为角速度,其中w0为起始角速度,w1为终止角速度 在S曲线加减速控制中,加减

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包