步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角),多用于雕刻机、3D打印机等需要精确控制的设备。本篇使用ULN2003驱动五线四相减速步进电机。

1. 步进电机介绍

  • 步进电机每次能转动的最小角度叫做步距角。
  • 每当步进电机接收到一个驱动信号后,步进电机将按照一定的方向转动一个固定的角度。
  • 通过控制脉冲的个数来精确的控制步进电机的角位移量,通过控制脉冲的频率来控制电机转动的速度及加速度,从而达到调速的目的。
  • 步进电机按照相数不同分为单相、双相、多相三种,励磁方式分为1相励磁方式和2相励磁方式。
  • 本篇使用的步进电机型号为28BYJ-48,1相励磁方式驱动,通过给ABCD四相依次通电来实现转自不停转动。

2. ULN2003驱动介绍

由于Arduino开发板的通用IO驱动能力有限,有些外设不能直接使用IO进行驱动,需要借助一些驱动电路间接控制大功率器件。ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中,可直接驱动继电器等负载。

3. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板连接线
  • ULN2003驱动板
  • 步进电机

4. 实验步骤

1. 根据原理图搭建电路。

ULN2003驱动板上IN1、IN2、IN3、IN4分别连接UNO开发板的数字引脚2,3,4,5;驱动板电源输入+、-引脚分别连接UNO开发板的5V、GND。

实验原理图如下图所示:

实物连接图如下图所示:

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

/** Stepper_Motor* 步进电机驱动,实现正反转*/
void setup() {// put your setup code here, to run once:for (int i = 2; i < 6; i++) {pinMode(i, OUTPUT);}
}void clockwise(int num)
{for (int count = 0; count < num; count++){for (int i = 2; i < 6; i++){digitalWrite(i, HIGH);delay(3);digitalWrite(i, LOW);}}
}void anticlockwise(int num)
{for (int count = 0; count < num; count++){for (int i = 5; i > 1; i--){digitalWrite(i, HIGH);delay(3);digitalWrite(i, LOW);}}
}void loop() {// put your main code here, to run repeatedly:clockwise(512);delay(10);anticlockwise(512);
}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

5. 实验现象

步进电机顺时针、逆时针交替旋转。

6. 实验分析

程序通过ABCD四相通电顺序实现步进电机正反转控制。步进电机旋转一周,程序中循环次数为什么是512次呢?这是根据我们使用的步进电机参数计算而来的:

  • 步进电机电压5V,步距角5.625,减速比1:64
  • 计算A-B-C-D通电一次转动的角度5.625X2X4/64=0.703125 (2是表示1相励磁方式每步是2倍的步距角,4表示走了4步, 64指电机减速比)
  • 转动360度循环ABCD通电的次数360/0.7031=512

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:

Arduino基础入门篇26—步进电机相关推荐

  1. Arduino基础入门篇01—进入Arduino的世界

    欢迎来到Arduino的世界,本文主要介绍Arduino的优势,开发所涉及的硬件分类,开发语言及开发环境的下载.可登陆Arduino官网学习了解更多Arduino信息. 什么是Arduino Ardu ...

  2. Arduino基础入门篇02—Arduino开发环境IDE安装使用

    工欲善其事,必先利其器.本文主要介绍Arduino开发环境IDE的安装及功能介绍. Arduino IDE安装 从官网下载IDE开发环境,IDE下载地址 .笔者使用Win10系统,点击 Windows ...

  3. Arduino基础入门篇30—数字温度传感器DS18B20

    温度传感器的种类繁多,按照测量方式分为接触式和非接触式,按照传感器材料分为热电阻和热电偶两类,按照工作原理分为模拟式和数字式.上一篇介绍了模拟温度传感器LM35,本篇介绍数字温度传感器DS18B20的 ...

  4. Arduino基础入门篇16—数码管库的使用

    Arduino官方提供了丰富的驱动库来方便对外设进行操作,很多爱好者也在开源精神下提供了很多第三方库.本篇介绍数码管库的使用,通过读取电位器输入,使用数码管库驱动数码管显示对应数据. SevSeg库是 ...

  5. Arduino基础入门篇06—流动的LED灯

    上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...

  6. Arduino基础入门篇17—四位数码管的驱动

    本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 数 ...

  7. Arduino基础入门篇(按键控制LED)

    本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的. 一.按键开关介绍 按键开关主要是指轻触式按键开关,也称之为轻触开关.按键开关是一种电子开关,属于电子元器件类,最早 ...

  8. Arduino基础入门篇10—电位器控制LED灯

    本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度. 模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚.它可以将 ...

  9. Arduino基础入门篇11—光控灯

    本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占据重要地位.一切智能化.自 ...

最新文章

  1. Git Gui的使用
  2. SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
  3. 解题:USACO14OPEN Fair Photography
  4. WinJS实用开发技巧(4):Appbar中使用自定义图片
  5. cocos2d-x游戏开发(一)开始菜单
  6. 网站前端设计,从960框架开始
  7. ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库
  8. 安全专家教你如何利用Uber系统漏洞无限制的免费乘坐?
  9. 基于Java+SpringBoot+vue+element实现火车订票平台管理系统
  10. 转录组+微生物组联合解密困扰50年的丛枝菌根共生“自我调节”中枢分子网络机制...
  11. Docker的save和export命令的区别
  12. APP移动购物界面设计灵感
  13. C语言原码、反码、补码
  14. 【报告分享】人工智能新时代报告.pdf(附下载链接)
  15. [Java] 蓝桥杯 BASIC-10 基础练习 十进制转十六进制
  16. 对MVC设计模式的理解
  17. Django Mysql数据库-聚合查询与分组查询
  18. 清华长庚医院通过医视云平台举办首次肝胆外科肿瘤远程多学科会诊
  19. 个人商业画布学习笔记
  20. R 语言数据分析/数据挖掘常用包

热门文章

  1. 手机浏览器类型ua php,通过userAgent判断手机浏览器类型(示例代码)
  2. Spark的调度流程(任务调度+资源调度)
  3. 实验3 STP简单配置及介绍
  4. 服务器时装不显示不出来,常见问题FAQ汇总
  5. mysql实现俩个属性加减运算_mysql加减乘除
  6. 宏碁暗影骑士擎安装双系统踩坑记录
  7. 【算法分析】多个对比算法的统计检验方法
  8. js检查违禁词汇敏感词汇代码
  9. CS224N Assignment3 #3: Dependency Parsing(2022 winter)
  10. YUV2RGB Opencv