IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 十、51单片机之步进电机 -> 正文阅读

[嵌入式]十、51单片机之步进电机

1、什么是步进电机

1.1、外观

?1.2、概念

(1)步进电机是一种将电脉冲信号转换成相应角位移线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。因此,步进电动机又称脉冲电动机。

(2)步进电机能够在精度范围内控制转动的方向,角位移,速度等。通常应用于机床中,如PCB生产中的贴片机,就需要精确控制电机。

(3)步进电机的种类非常多。这里示例的是四线步进电机,电机上标有A+、A-、B+、B-。

2、步进电机相关的概念

2.1、步距角

(1)步进电机转动的最小单位,也就是步进电机的精度。

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

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

(4)电机还有比步距角更小的运动方式,叫做细分,由电机驱动器来支持的。

2.2、相数

相数指步进电机内部的线圈组数,一般一组线圈引出一组线。

2.3、细分

初学中不接触细分,我手里的电机驱动器(驱动芯片)也不支持细分。

2.4、单极性和双极性

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

(1)参考如下资料:单极性 (unipolar) 和双极性 (bipolar) 步进电机 - 豆丁网

(2)单极性驱动电路使用四颗晶体管来驱动步进电机的两组相位;双极性驱动电路使用八颗晶体管来驱动两组线位。

(3)单极性驱动电路的电机结构包含两组带有中间抽头的线圈,整个电机共有六条线与外界连接。

(4)双极性驱动电路可以同时驱动四线式或六线式步进电机,虽然四线式电机只能使用双极性驱动电路,它却能大幅降低量产型应用的成本。

(5)双极性驱动电路的晶体管只需承受电机电压便可;双极性驱动电路的晶体管只需承受电机电压便可单极性驱动电路需要箝位电路才能驱动。

3、两相四线式步进电机驱动时序

四线分别是A+??? A-??? B+??? B-

A+? =? A;A/? =? A-;B+? =? B;B/? =? B-;

3.1、单相四拍

正转时序:? A/ B A B/

反转时序:? B/ A B A/

3.2、双相四拍

正转时序:? A/B? AB? AB/ A/B/

反转时序:? A/B/ AB/ AB A/B

3.3、半步八拍

正转时序:? A/? A/B? B? AB? A? AB/? B/? A/B/

反转时序:? A/B/ B/ AB/ A AB B A/B A/

4、控制器和驱动器

(1)一套步进电机的系统需要三部分:控制器+驱动器+步进电机。

(2)一般情况下:控制器就是单片机,驱动器一般是接在单片机的IO口上面的专用电机驱动芯片。

(3)控制器负责产生时序信号,驱动器负责将时序信号转成功率驱动信号给步进电机用。

5、原理图

?(1)原理图中INA、INB、INC、IND与单片机IO口相连接,通过单片机的IO口给驱动器芯片输入0/1产生控制信号,控制信号经过TC1117的转换,从OUTA、OUTB、OUTC、OUTD四个脚输出具有驱动步进电机能力的驱动信号。

(2)INA、INB对应一个相线线圈的两端,INC、IND对应另一个相线线圈的两端。

驱动芯片数据手册:略。

6、步进电机编程示例

#include <reg52.h>
#include "intrins.h"


sbit AN = P0^0;  //A-
sbit AP = P0^1;  //A+
sbit BN = P0^2;  //B-
sbit BP = P0^3;  //B+


/*函数声明*/
void Delay1ms();		//@12.000MHz
void Delay500ms();		//@12.000MHz


void main()
{

	while(1)
	{
		/* 单相四拍: A/ B A B/ */
		AN = 1;
		AP = 0;  
		BN = 0;   
		BP = 0;   
		//Delay1ms();
		Delay500ms();
		
		AN = 0;
		AP = 0;  
		BN = 0;  
		BP = 1;
		//Delay1ms();
		Delay500ms();		
		
		AN = 0;
		AP = 1;  
		BN = 0;  
		BP = 0; 
		//Delay1ms();
		Delay500ms();		
		
		AN = 0;
		AP = 0;  
		BN = 1;  
		BP = 0;  
		//Delay1ms();
		Delay500ms();
	}
}


void Delay1ms()		//@12.000MHz
{
	unsigned char i, j;

	i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
}


void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

(1)单相四拍驱动时序:A/? B? A? B/,如果这当作正传,那么反过来B/? A? B? A/ 就是反转。

(2)转速控制:转速是由脉冲信号的频率控制的,其实就是delay的时间。

(3)delay时间过短电机可能不转。delay时间越长,转速约满。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:27:08  更:2022-12-25 11:27:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:25:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码