• 步进电机,由于其独特的设计,可以没有任何反馈机制而控制到一个高度的准确性。一个步进电机的轴,安装有一系列的磁铁,是由一系列的电磁线圈控制,这些线圈按一个特定的序列排列正负极,尤其是向前或向后移动一小“步”。
  • 有两种类型的步进电机,单极型和双极型晶体管,而且知道你正在使用哪种类型是非常重要的。每种电机,都有一个不同的电路。示例代码将控制两种电机。看看单极性和双极性电机的原理图,和关于如何连接你的电机的信息。
  • 在这个例子中,轴是一个完整的旋转顺时针旋转,通过Arduino Stepper库来控制步进电机的步进数目。无论是单极或双极电机,均由数字引脚8,9,10,和11控制步进。
  • 如果你正在使用一个单极型步进电机,Arduino或genuino开发板将会连接到一个U2004达林顿管阵列。

硬件要求

  • Arduino UNO板
  • 步进电机
  • U2004 达林顿管阵列 (如果用单极型电机)
  • 杜邦线
  • 外置电源(5V-12V)

ULN2003驱动模块


ULN2003步进电机驱动板作用是更简单的用Arduino控制28BYJ-48步进电机。驱动板的电机供电接口可以连接到Arduino的GND和5V取电,但是不推荐这种方法,推荐用独立的5-12伏1安培的电源或电池组取电。“IN1~IN4”连接arduino的4个数字口(在代码里进行相应的设置)。

28BYJ-48步进电机

28BYJ-48步进电机的齿轮减速比为64:1,转速约15转/分钟,一些软件采用某些手段和高电压电源(如12伏直流)也能达到约25转/分钟的转速。
4步控制信号序列:11.25度/步,32步旋转一周。
8步控制信号序列:5.625度/步, 64步旋转一周。

正常情况下,4步模式下旋转一周将用:32(步/周)X64(齿轮比) = 2048 步。

接线

步进电机 Arduino UNO
IN1 8
IN2 9
IN3 10
IN4 11
VCC VCC
IGBD GND

程序:

//使用arduino IDE自带的Stepper.h库文件
#include <Stepper.h>// 这里设置步进电机旋转一圈是多少步
#define STEPS 100//设置步进电机的步数和引脚(就是注意点2里面说的驱动板上IN1~IN4连接的四个数字口)。
Stepper stepper(STEPS, 8, 10, 9, 11);void setup()
{// 设置电机的转速:每分钟为90步stepper.setSpeed(90);// 初始化串口,用于调试输出信息Serial.begin(9600);
}void loop()
{// 顺时针旋转一周Serial.println("shun");stepper.step(2048); //4步模式下旋转一周用2048 步。delay(500);// 逆时针旋转半周Serial.println("ni");stepper.step(-1024); //4步模式下旋转一周用2048 步。delay(500);
}

拓展知识(转):

1.什么是步进电机?

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

2.步进电机分哪几种?

步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB)
永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;
反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;
混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。

3.什么是保持转矩(HOLDING TORQUE)?

保持转矩(HOLDING TORQUE)是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。比如, 当人们说2N.m的步进电机,在没有特殊说明的情况下是指保持转矩为2N.m的步进电机。

4.什么是DETENT TORQUE?

DETENT TORQUE 是指步进电机没有通电的情况下,定子锁住转子的力矩。DETENT TORQUE 在国内没有统一的翻译方式,容易使大家产生误解;由于反应式步进电机的转子不是永磁材料,所以它没有DETENT TORQUE。

5.步进电机精度为多少?是否累积?

一般步进电机的精度为步进角的3-5%,且不累积。

6.步进电机的外表温度允许达到多少?

步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。

7.为什么步进电机的力矩会随转速的升高而下降?

当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。

8.为什么步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声?

步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启 动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。

9.如何克服两相混合式步进电机在低速运转时的振动和噪声?

步进电机低速转动时振动和噪声大是其固有的缺点,一般可采用以下方案来克服:
A.如步进电机正好工作在共振区,可通过改变减速比等机械传动避开共振区;
B.采用带有细分功能的驱动器,这是最常用的、最简便的方法;
C.换成步距角更小的步进电机,如三相或五相步进电机;
D.换成交流伺服电机,几乎可以完全克服震动和噪声,但成本较高;
E.在电机轴上加磁性阻尼器,市场上已有这种产品,但机械结构改变较大。

10.细分驱动器的细分数是否能代表精度?

步进电机的细分技术实质上是一种电子阻尼技术(请参考有关文献),其主要目的是减弱或消除步进电机的低频振动,提高电机的运转精度只是细分技术的一个附带功能。比如对于步进角为1.8°的两相混合式步进电机,如果细分驱动器的细分数设置为4,那么电机的运转分辨率为每个脉冲0.45°,电机的精度能否达到或接近0.45°,还取决于细分驱动器的细分电流控制精度等其它因素。不同厂家的细分驱动器精度可能差别很大;细分数越大精度越难控制。

11.四相混合式步进电机与驱动器的串联接法和并联接法有什么区别?

四相混合式步进电机一般由两相驱动器来驱动,因此,连接时可以采用串联接法或并联接法将四相电机接成两相使用。串联接法一般在电机转速较的场合使用,此时需要的驱动器输出电流为电机相电流的0.7倍,因而电机发热小;并联接法一般在电机转速较高的场合使用(又称高速接法),所需要的驱动器输出电流为 电机相电流的1.4倍,因而电机发热较大。

12.如何确定步进电机驱动器的直流供电电源?

A.电压的确定
混合式步进电机驱动器的供电电源电压一般是一个较宽的范围(比如IM483的供电电压为12~48VDC),电源电压通常根据电机的工作转速和响应要求来选择。如果电机工作转速较高或响应要求较快,那么电压取值也高,但注意电源电压的纹波不能超过驱动器的最大输入电压,否则可能损坏驱动器。
B.电流的确定供电电源电流一般根据驱动器的输出相电流I来确定。如果采用线性电源,电源电流一般可取I的1.1~1.3倍;如果采用开关电源,电源电流一般可取I 的1.5~2.0倍。

13.混合式步进电机驱动器的脱机信号FREE一般在什么情况下使用?

当脱机信号FREE为低电平时,驱动器输出到电机的电流被切断,电机转子处于自由状态(脱机状态)。在有些自动化设备中,如果在驱动器不断电的情况下要求直接转动电机轴(手动方式),就可以将FREE信号置低,使电机脱机,进行手动操作或调节。手动完成后,再将FREE信号置高,以继续自动控制。

14.如果用简单的方法调整两相步进电机通电后的转动方向?

只需将电机与驱动器接线的A+和A-(或者B+和B-)对调即可。

Arduino ULN2003驱动模块+28BYJ-48步进电机相关推荐

  1. 【Proteus仿真】Arduino+uln2003驱动步进电机+单按键启保停正反转控制

    [Proteus仿真]Arduino+uln2003驱动步进电机+单按键启保停正反转控制 Proteus仿真 功能实现 采用外部中断来获取按键信息 程序代码 #define LED ( 13 )#de ...

  2. 利用Arduino+TB6600驱动模块控制两相四线42减速步进电机

    实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机 材料: Arduino Nano   *1 TB6600驱动器  *1 42减速步进电机*1 面包板           ...

  3. arduino笔记41:直流电机 + 步进电机参数、原理

    目录 一.电机基本结构与工作原理 二.直流电机 有刷直流电机(BDC)主要参数 控制转速 三.arduino驱动直流电机 四.步进电机 双极性步进电机 步进电机基本参数 步进电机分类 一.电机基本结构 ...

  4. Arduino开发之如何连接步进电机?

    文章目录 0.引言 1.步进电机说明 2.编写代码 3.转速测试结果分析 0.引言   某项目需要一个小电机转动装置进行测量,该装置本身可以测量角度(姿态),不需要电机的精确角度,但需要对速度要有控制 ...

  5. Arduino DRV8825驱动两相步进电机

    Arduino DRV8825驱动两相步进电机 DRV8825步进电机驱动 DRV8825的特点 相对于4988的特点优势 DRV8825驱动步进电机注意事项 细分 引脚说明 Arduino配合DRV ...

  6. 【电机控制】Arduino mega 2560控制42步进电机接线

    Arduino mega 2560控制42步进电机接线图 ****TB6600驱动器与42步进电机接线图**** 接线: 12V电源适配器正负极分别接驱动器VCC和GND 步进电机黑绿红蓝线分别接驱动 ...

  7. Arduino(2560)控制两个步进电机通过控制器

    Arduino 2560控制两个步进电机 用arduino和步进电机控制器驱动两个步进电机,具体的接线过程和怎样连接都在图片上. 准备工具: 两个步进电机(我用的是J42): Arduino板(我用的 ...

  8. K_A07_002 基于 STM32等单片机驱动ULN2003模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 步进电机驱动时序 反向输出 对应程序: 四.部分代码说明 1.接线说明 1.1.STC89C52RC+ULN2003模块 1.2 ...

  9. Arduino UNO使用库实现步进电机指定角度旋转

    Arduino UNO使用库实现步进电机指定角度旋转 步进电机和驱动器相关的资料 https://pan.baidu.com/s/1udb4MyEOXk4CTO7TKRHj6w 提取码: fuea 步 ...

最新文章

  1. 聊聊 Kafka 那点破事!
  2. python中二维数组的建立,输入和输出
  3. 连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决
  4. 那个成人总会遇到的小问题……
  5. 滑膜观测器物理意义_电机控制中的滑模控制(滑模观测器设计)
  6. 电力电子、电机控制系统的建模和仿真_清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
  7. MapReduce过程详解及其性能优化
  8. RecycleView的Item Decoration间隔样式
  9. android的listview+BaseAdapter的例子
  10. Java 堆内存是线程共享的!面试官:你确定吗?
  11. 【工具】开发环境之vagrant
  12. iphone屏幕镜像如何全屏_苹果投屏有什么方法?使用“屏幕镜像”功能,任意切换大小屏幕...
  13. Effective Receptive Field
  14. 顺序消费可没你想的这么简单,队列数量的变更往往无法保证同一个账号的消息发送到同一个分区,怎么解决?
  15. 大数据系列5:地理信息系统PostGis
  16. php mysql utf 8_PHP+MySQL中对UTF-8,UTF8(utf8),set names gbk 的理解
  17. Java 使用jsoup下载网页内容到本地
  18. 面试题之数据库脏读、不可重复读、幻读
  19. 菜谱识别_9种美味食谱,可共享,修改和重新混合
  20. Apache Log4j2远程代码执行漏洞(CVE-2021-44228)

热门文章

  1. Android 4.0.1 源码下载,编译和运行
  2. 发现生活中的数学之美
  3. Android 通过基站进行定位
  4. CSR8675的DSP学习笔记——a2dp_sink工程的matlab仿真
  5. 查看文件的使用的大小
  6. Doris(一)-简介、架构、编译、安装和数据表的基本使用
  7. 使用tushare数据画疫情感染人数地图
  8. 腾云忆想技术文|CREDIS在TMF平台中的落地实践
  9. 阿里云服务器mysql开放远程连接步骤
  10. addEventListener的常用事件