0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino和Arduino控制步进电机

454398 ? 来源:网络整理 ? 作者:网络整理 ? 2019-11-27 17:43 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

步进电机介于常规直流电机伺服电机之间。它们的优点是可以精确定位,一次可以向前或向后移动一个“步”,但是它们也可以连续旋转。

在本课程中,您将学习如何使用Arduino和Arduino控制步进电机。与第15课中的直流电动机一起使用的相同的L293D电动机控制芯片。

如何使用Arduino和Arduino控制步进电机

零件

要构建本课中描述的项目,您将需要以下零件。

零件 数量

5V步进电机 1

L293D IC

1

半尺寸面包板

1

Arduino Uno R3

1

跳线束

1

电路板布局

步进电机有五根引线,这次我们将使用L293D的两半。这意味着面包板上有很多连接。

电动机的末端有一个5路插座。

i》

请注意,步进电机的红色导线未连接任何东西。

Arduino代码

下面的草图使用串行监视器,在草图安装并运行后,打开串行监视器并输入许多“步骤”。尝试将其设置为大约500,这将导致电动机旋转大约360度。输入-500,它将向反方向返回。

Stepper库是包含在较新的Arduino IDE发行版中-您可能需要升级。

下载:文件

复制代码

/*

Adafruit Arduino - Lesson 16. Stepper

*/

#include

int in1Pin = 12;

int in2Pin = 11;

int in3Pin = 10;

int in4Pin = 9;

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(in3Pin, OUTPUT);

pinMode(in4Pin, OUTPUT);

// this line is for Leonardo‘s, it delays the serial interface

// until the terminal window is opened

while (!Serial);

Serial.begin(9600);

motor.setSpeed(20);

}

void loop()

{

if (Serial.available())

{

int steps = Serial.parseInt();

motor.step(steps);

}

} /*

Adafruit Arduino - Lesson 16. Stepper

*/

#include

int in1Pin = 12;

int in2Pin = 11;

int in3Pin = 10;

int in4Pin = 9;

Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(in3Pin, OUTPUT);

pinMode(in4Pin, OUTPUT);

// this line is for Leonardo’s, it delays the serial interface

// until the terminal window is opened

while (!Serial);

Serial.begin(9600);

motor.setSpeed(20);

}

void loop()

{

if (Serial.available())

{

int steps = Serial.parseInt();

motor.step(steps);

}

}

正如您所期望的,有一个支持步进电机的Arduino库。

在包括“ Stepper”库之后,定义了四个控制引脚“ in1”至“ in4”。

告诉ArduinoStepper哪些引脚连接到电机控制器的库,使用以下命令:

下载:文件

复制代码

Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin); Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin);

第一个参数是电机完成一次公转所需要的“步数”。电机可以一次移动一步,以进行非常精确的定位。

然后开始串行通信,以便Arduino准备从串行监视器接收命令。

最后, followingcommand设置我们希望步进电动机移动的速度,随后我们告诉它旋转多少步。

下载:文件

复制代码

motor.setSpeed(10); motor.setSpeed(10);

“循环”功能非常简单。它等待来自SerialMonitor的命令输入,然后使用‘parseInt’将发送的数字文本转换为int。然后,它指示电动机旋转该步数。

步进电机

步进电机使用带齿的轮和电磁体一次将轮微调为“步进”。

通过以正确的顺序给线圈通电,电动机被驱赶。步进电机在360度旋转中的步数实际上就是齿轮上的齿数。

我们正在使用的电机具有48步,但是该电机还集成了一个减速齿轮箱:1: 16表示它需要16 x 48 = 768步。

在本课程中,我们不使用公共Redconnection。仅在使用不同类型的驱动电路时才提供此连接,该驱动电路不允许每个线圈中的电流反向。每个线圈都有一个中心连接,这意味着您可以为线圈的左侧或右侧通电,并获得反向电流的效果,而无需使用可以反向电流的电路。

如果使用L293D具有非常好的反向电流,则不需要这种公共连接,我们可以向每个线圈的整个方向提供电流。

其他要做的事情

尝试更改设置步进电动机速度的命令:

下载:文件

复制代码

motor.setSpeed(20); motor.setSpeed(20);

到较低的值(例如5)上传草图,并注意步进器旋转得更慢。

现在尝试通过将速度提高到20以上来找到步进器的最大速度。在确定一点之后,您会发现电机完全不动。这是因为它跟不上要求它步进的脉冲流。

尝试断开步进器的橙色和粉红色引线。它仍然应该转动,但是您会注意到它较弱,因为它没有两个线圈都在推动电机运转。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 步进电机
    +关注

    关注

    152

    文章

    3173

    浏览量

    150166
  • Arduino
    +关注

    关注

    190

    文章

    6501

    浏览量

    193122
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    免费分享Arduino入门+进阶(全套例程+书籍)

    创意,比如控制灯光、传感器、电机等。以下是Arduino入门+进阶学习资料1.Arduino编程语言说明(相关文件可在下文扫码领取)2.Arduin
    的头像 发表于 05-22 11:40 ?338次阅读
    免费分享<b class='flag-5'>Arduino</b>入门+进阶(全套例程+书籍)

    《ESP32S3 Arduino开发指南》第二章 Arduino基础知识

    的发展,在Arduino出现以前,虽然也有很多公司在推广一些简单易用的可编程控制器,但是由于开发平台种类繁多,而且使用这些控制器基本上都需要对电子技术、数字逻辑、寄存器等内容进行多方面的了解和学习,才能
    发表于 05-13 09:28

    步进电机控制实现方法

    ? ? ? 步进电机,作为一种将电脉冲信号转换为相应角位移或线位移的电动机,是现代数字控制系统中不可或缺的重要组件。其工作原理基于电磁学原理,通过接收数字控制信号(电脉冲信号)并转化为
    的头像 发表于 01-21 16:43 ?1531次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>实现方法

    如何使用Arduino实现CAN总线通信呢

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制器平台,可以通过附加
    的头像 发表于 12-23 09:06 ?2141次阅读

    Made with KiCad(十一):Sangaboard步进电机控制

    “ ?Sangaboard 是用于单极步进电机(如廉价的 28BYJ-48 电机)的电机控制器。 ? ” 概览 Sangaboard 是用于
    的头像 发表于 12-04 11:52 ?893次阅读
    Made with KiCad(十一):Sangaboard<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>板

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 ?2390次阅读

    stm32与Arduino的比较

    在微控制器的世界里,STM32和Arduino是两个经常被提及的名字。STM32是一系列由STMicroelectronics生产的高性能微控制器,而Arduino则是一个开源电子原型
    的头像 发表于 11-19 15:45 ?4545次阅读

    行星减速步进电机步进电机的区别

    步进电机是一种将电脉冲信号转变为角位移或线位移的开环控制电机。其工作原理是通过电子电路将直流电分为多相序控制电流,使用这种电流给
    的头像 发表于 11-16 15:11 ?978次阅读
    行星减速<b class='flag-5'>步进</b><b class='flag-5'>电机</b>与<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的区别

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 ?2938次阅读

    arduino 6轴同步电机驱动程序

    arduino 6轴同步电机驱动程序。含加加减速。
    发表于 11-09 14:09 ?0次下载

    步进电机如何自适应控制步进电机如何细分驱动控制

    步进电机是一种将电脉冲信号转换为角位移或线位移的电机,广泛应用于各种自动化控制系统中。为了提高步进电机
    的头像 发表于 10-23 10:04 ?1726次阅读

    步进电机转速怎么控制高低

    步进电机是一种将电脉冲信号转换为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当
    的头像 发表于 10-22 15:55 ?2316次阅读

    步进电机控制技术及发展概况有哪些?

    步进电机是一种将电脉冲信号转换为角位移或线位移的执行元件,广泛应用于各种自动化控制系统中。步进电机控制
    的头像 发表于 10-22 11:50 ?758次阅读

    步进电机的伺服控制方法有哪些

    步进电机的伺服控制方法主要包括以下几种: 1. 位置模式 定义 :在位置模式下,步进伺服电机根据输入的位置指令,通过闭环
    的头像 发表于 09-04 09:48 ?1305次阅读

    步进电机伺服控制系统的作用

    步进电机伺服控制系统是一种精密的电机控制系统,它通过精确控制
    的头像 发表于 09-04 09:46 ?1323次阅读