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

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

3天内不再提示

如何使用Arduino和L293D电机驱动器芯片来控制小型DCmotor的方向和速度

454398 来源:网络整理 作者:网络整理 2019-12-02 10:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

在本课程中,您将学习如何使用Arduino和L293D电机驱动器芯片来控制小型DCmotor的方向和速度。

电位器控制电动机的速度,并通过按钮控制方向。

零件

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

零件 数量

小型6V直流电动机

1

L293D IC

1

10kΩ可变电阻器(pot)

1

触摸开关

1

半面包板

1

Arduino Uno R3

1

跳线包

1

实验

在获得用于控制电机的Arduino板之前,我们应该先对L293D电机控制芯片进行实验,以了解其工作原理

我们可以仅使用Arduino向电动机提供5V电压。

请注意电动机的旋转方式。您可以通过将电动机轴夹在手指之间来做到这一点。交换电动机导线,使原先要达到+ 5V的电动机导线到达GND,反之亦然。电动机将沿相反方向旋转。

这为我们提供了有关L293D芯片工作原理的线索。它的控制销使我们能够执行等效的交换电动机端子以反转电动机方向的操作。

按如下所示构建面包板。 Arduino仍然只是供电,但是我们可以在让Arduino接管之前手动对控制引脚进行实验。

我们感兴趣的L293D的三个引脚是引脚1(启用),引脚2(In1)和引脚7(In2)。 )。使用紫色,黄色和橙色的跳线将它们连接到5V或GND。

如上所示,电动机应该在一个方向上旋转,我们将其称为A方向。

如果将引脚1(使能)移至GND时,无论使用控制引脚In1和In2做什么,电动机都将停止。启用可打开和关闭所有功能。这对于使用PWM输出控制电动机速度非常有用。将引脚1重新连接至5V,以便电动机再次启动。

现在尝试将In1(引脚2,黄色)从5V移至GND。In1和In2现在都已连接至GND,因此电动机将再次停止。/p》

将In2从GND移至5V将导致电动机沿相反方向(B方向)旋转。

最后,将In1移回5V,以使In1和In2都处于5V导致电动机停止。

引脚In1和In2对电动机的影响总结在下表中:

In1In2电动机

GNDGND已停止

5VGND向A方向转动

GND5V向B方向转动

5V5V已停止

面包板布局

现在我们已经掌握了直接控制电机的功能,我们可以让Arduino管理 Enable , In1 和 In2 引脚。

构建面包板时,需要确保IC正确定位。凹口应位于面包板的顶部。

Arduino代码

将以下草图加载到您的Arduino上。

下载:文件

复制代码

/*

Adafruit Arduino - Lesson 15. Bi-directional Motor

*/

int enablePin = 11;

int in1Pin = 10;

int in2Pin = 9;

int switchPin = 7;

int potPin = 0;

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(enablePin, OUTPUT);

pinMode(switchPin, INPUT_PULLUP);

}

void loop()

{

int speed = analogRead(potPin) / 4;

boolean reverse = digitalRead(switchPin);

setMotor(speed, reverse);

}

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

} /*

Adafruit Arduino - Lesson 15. Bi-directional Motor

*/

int enablePin = 11;

int in1Pin = 10;

int in2Pin = 9;

int switchPin = 7;

int potPin = 0;

void setup()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(enablePin, OUTPUT);

pinMode(switchPin, INPUT_PULLUP);

}

void loop()

{

int speed = analogRead(potPin) / 4;

boolean reverse = digitalRead(switchPin);

setMotor(speed, reverse);

}

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

}

定义了引脚,并在“设置”功能中正常设置了它们的模式。

在循环功能中,电机速度的值为通过将锅中的模拟读数除以4可以找到。

因数为4,因为模拟读数将在0到1023之间,并且模拟输出需要在0到255之间。

如果按下按钮,电机将正向运行,否则将反向运行。 “ reverse”变量的值仅设置为从开关引脚读取的值。因此,如果按下按钮,它将为False,否则将为True。

速度和反向值将传递给名为“ setMotor”的函数,该函数将设置驱动器芯片上的适当引脚以控制

下载:文件

复制代码

void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

} void setMotor(int speed, boolean reverse)

{

analogWrite(enablePin, speed);

digitalWrite(in1Pin, ! reverse);

digitalWrite(in2Pin, reverse);

}

首先,通过对enable引脚使用AnalogWrite来设置速度。无论L293的in1和in2引脚设置为什么,L293的使能引脚都可以打开或关闭电动机。

要控制电动机的方向,in1和in2引脚必须为

如果in1为HIGH而in2为LOW,则电动机将以一种方式旋转;如果in1为LOW而in2为HIGH,则电动机将以相反的方向旋转。/p》

‘!’命令的意思是“不是”。因此,in1的第一个digitalWrite命令将其设置为与“ reverse”的值相反的值,因此,如果reverse为HIGH则将其设置为LOW,反之亦然。

in2的第二个digitalWrite将引脚设置为“ reverse”的值。这意味着它将永远与in1是相反的。

L293D

这是一个非常有用的芯片。它实际上可以独立控制两个电动机。在本课程中,我们仅使用一半的芯片,芯片右侧的大多数引脚用于控制第二个电机。

第二个电动机将连接在OUT3和OUT4之间。您还需要另外三个控制引脚。

EN2已连接到Arduino上的PWM使能输出引脚

IN3和IN4已连接到Arduino上的数字输出。

L293D具有两个+ Vpin(8和16)。 ‘+ Vmotor(8)引脚为电机供电,而+ V(16)则为芯片逻辑供电。我们已经将它们都连接到Arduino 5V引脚。但是,如果您使用的是功率更高的电机或更高电压的电机,则可以使用连接到正电源的引脚8为电机提供单独的电源,而第二个电源的接地端则连接到Arduino的接地端。/p》

其他要做的事情

您可以尝试更改草图以控制电动机,而无需使用电位器或开关。它可能会在向前方向上开始缓慢,然后逐渐变快,然后变慢,然后反转,重复此模式。

责任编辑:wv

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

    关注

    191

    文章

    6535

    浏览量

    197666
  • L293D
    +关注

    关注

    4

    文章

    50

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    低压步进电机驱动器STSPIN220开发(1)----驱动STSPIN220

    STSPIN220 是一款步进电机驱动器,在一个小型 VFQFPN 3 x 3 x 1.0 mm 封装中集成了控制逻辑和低 RDS(开启)功率级。该套件提供一整套保护功能,包括过电流、
    的头像 发表于 05-25 16:29 286次阅读
    低压步进<b class='flag-5'>器</b><b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>STSPIN220开发(1)----<b class='flag-5'>驱动</b>STSPIN220

    小型直流电机驱动器:AOMH361NS V2.00的深度解析

    的LM2575芯片,能为小型项目提供强大的电机驱动能力。 文件下载: DRI0042.pdf 产品概述 AOMH361NS V2.00是一款专为小型
    的头像 发表于 05-14 10:40 320次阅读

    小型双直流电机驱动器:设计与应用全解析

    小型双直流电机驱动器:设计与应用全解析 在电子工程领域,电机驱动是一个关键的环节,尤其是在空间受限的项目中,一款性能出色的
    的头像 发表于 05-14 10:40 755次阅读

    探秘BDE30驱动器:高性能电机控制的理想之选

    : 79238959.pdf 产品概述 BDE30驱动器专为电机80180504设计,型号为79238959,适用于18 - 36V DC的电源,额定电流为6A。它具备4象限功能,可实现闭环速度
    的头像 发表于 05-12 14:20 691次阅读

    具有闭环速度控制功能的24V、36W 无传感BLDC正弦电机驱动器参考设计

    这款无刷直流 (BLDC) 电机驱动器参考设计采用闭环控制,仅用两个芯片即可实现精准的高速度。第一个芯片
    发表于 03-16 09:52 0次下载

    步进电机驱动器的作用介绍

    步进电机驱动器是现代工业自动化、精密控制设备中的核心组件之一,其作用远不止简单的“驱动电机转动”,而是通过精确
    的头像 发表于 02-28 15:47 491次阅读
    步进<b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>的作用介绍

    电机驱动控制技术解析

    电压的电机驱动器,直流电机和步进电机都可以驱动。在5V到35V的电压范围内,提供2安培的电流,并且具有过热自断和反馈检测功能。
    发表于 11-27 08:04

    ‌DRV8872 有刷直流电机驱动器技术文档总结

    DRV8872设备是用于打印机、电器、工业设备和其他小型机器的有刷直流电机驱动器。两个逻辑输入控制 H 桥驱动器,该
    的头像 发表于 10-17 10:11 819次阅读
    ‌DRV8872 有刷直流<b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>技术文档总结

    ‌DRV8870 有刷直流电机驱动器技术文档总结

    DRV8870 器件是用于打印机、电器、工业设备和其他小型机器的有刷直流电机驱动器。两个逻辑输入控制 H 桥驱动器,该
    的头像 发表于 10-17 10:06 1261次阅读
    ‌DRV8870 有刷直流<b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>技术文档总结

    ‌DRV8871 3.6A有刷直流电机驱动器技术文档总结

    DRV8871 器件是用于打印机、电器、工业设备和其他小型机器的有刷直流电机驱动器。两个逻辑输入控制 H 桥驱动器,该
    的头像 发表于 10-17 09:54 1750次阅读
    ‌DRV8871 3.6A有刷直流<b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>技术文档总结

    ‌DRV8871-Q1 汽车级刷式直流电机驱动器技术文档总结

    DRV8871-Q1 器件是一款有刷直流电机驱动器,适用于打印机、电器、工业设备和其他小型机器。两个逻辑输入控制 H 桥驱动器,该
    的头像 发表于 10-16 14:26 970次阅读
    ‌DRV8871-Q1 汽车级刷式直流<b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>技术文档总结

    CW32L011 电机驱动器开发板测试

    非常感谢CW32生态社区提供的CW32L011电机驱动器,下面是对该电机驱动器的分析和测试。 电机
    的头像 发表于 08-30 10:31 1305次阅读
    CW32<b class='flag-5'>L</b>011 <b class='flag-5'>电机</b><b class='flag-5'>驱动器</b>开发板测试

    200V/4A半桥栅极驱动器适用于大功率通讯电源/D类音频放/大功率电机驱动器

    概述:PC318C046EQ 是一款高性能、高可靠性的半桥栅极驱动器,稳健可靠的电平转换技术同时拥有高运行速度和低功耗特性,并且可提供从控制输入逻辑到高侧栅极驱动器的干净电平转换。该器
    发表于 08-21 15:48

    永磁电机调速驱动器与伺服驱动器、变频有哪些异同?

    永磁电机调速驱动器、伺服驱动器与变频作为现代工业控制领域的三大核心动力装置,在电机
    的头像 发表于 07-30 07:35 1966次阅读
    永磁<b class='flag-5'>电机</b>调速<b class='flag-5'>驱动器</b>与伺服<b class='flag-5'>驱动器</b>、变频<b class='flag-5'>器</b>有哪些异同?

    Texas Instruments MCF8316D无传感FOC BLDC驱动器数据手册

    Texas Instruments MCF8316D无传感磁场定向控制(FOC)无刷直流(BLDC)驱动器是一款单芯片器件,用于
    的头像 发表于 07-10 11:50 4315次阅读
    Texas Instruments MCF8316<b class='flag-5'>D</b>无传感<b class='flag-5'>器</b>FOC BLDC<b class='flag-5'>驱动器</b>数据手册