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

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

3天内不再提示

怎样用Arduino连接电机

454398 来源:wv 2019-08-29 09:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:连接所有硬件

怎样用Arduino连接电机

连接L293D电机驱动器

L293D是双通道全桥电机驱动器,每通道最大输出电流为600 mA(数据等)。这意味着您可以同时驱动2个电流,这些电机的电流需求在IC的限制范围内。在我们的例子中,我们只使用一个通道,这意味着我们将使用模块上的M1 IN/M1输出端口(IC上分别为引脚2,7和3,6)。为了使电机连接到该通道,我们需要将EN1(引脚1)拉高。我正在使用的模块提供了一个简单的跳线布置,用于硬接线,参见图片。或者,您可以通过控制器控制此引脚。引脚连接如图所示。

连接L298N电机驱动器

与L293D类似,L298N也是双全桥电机驱动器每个通道的最大输出电流为2A。我们将只使用一个渠道,即。 M1,M2(该模块具有不同的命名约定,M1-In,M2-In为输入,M1-Out,M2-Out为相应的输出)数据表L298N

当我们需要更多电流时对于金属齿轮直流电机,这个特殊的驱动器是一个不错的选择。它具有良好的性能,低热量(尽管建议使用散热器,市场上大多数模块都带有散热片)。它也非常便宜,有帮助。

连接伺服电机

伺服电机有各种尺寸和相应的扭矩等级。通常我们看到扭矩额定值较低的电机使用塑料齿轮,但扭矩额定值较高的电机使用金属齿轮。

伺服电机有3根电线从中传出,即信号,Vcc和接地。通常使用的颜色代码如下:

信号》黄色/橙色;在VCC》红色/白色; Gnd》 Black/Brown

根据经验,识别它们的最简单方法是,最黑暗的一个是地面,略亮的是Vcc,最亮的一个是信号。

如果您使用的是像HK15178这样的微型伺服,可以使用Arduino上的5V引脚为其供电。但是,当电流要求较高时,您的Arduino无法提供足够的电流,因此您需要从外部供电。我们将使用通用电池消除器电路(UBEC),它具有方便的5V/6V 3A输出。我们在7805这样的简单电压调节器上使用该电路的原因是电压调节器的电流限制低于控制伺服电流所需的输出电流约1.5至2A(取决于其额定值)。

PS:如果使用Arduino为更高等级的伺服电源供电,电路板可能会突然复位并以不合需要的方式运行。

连接HC-05蓝牙模块

这一步与使用HC-05和Arduino UNO的智能手机控制LED灯所解释的完全相似。这里唯一的区别是我们使用模拟引脚A0和A1作为数字引脚(D14和D15) Rx和Tx。

第2步:Arduino代码

#define BoMotor_F 3

#define BoMotor_B 5

#define DcMotor_F 6

#define DcMotor_B 11

#define ServoMotorPin 7

#include

#include

SoftwareSerial mySerial(14, 15); // RX, TX

Servo myservo;

char character;

boolean flag=false;

void setup() {

// put your setup code here, to run once:

mySerial.begin(9600);

Serial.begin(9600);

pinMode(BoMotor_F,OUTPUT);

pinMode(BoMotor_B,OUTPUT);

pinMode(DcMotor_F,OUTPUT);

pinMode(DcMotor_F,OUTPUT);

myservo.attach(ServoMotorPin);//servo is attached on pin7

} void loop() {

// put your main code here, to run repeatedly:

String Data = “”;

flag=false;

while(mySerial.available()) {

character = mySerial.read();

Data.concat(character);

flag=true;

delay(100);

}

if(flag)

{

Data.trim();

Serial.println(Data);

int s = Data.substring(0,1).toInt();

int direction = Data.substring(2,3).toInt();

int value = Data.substring(4).toInt();

switch(s){

case 1:{DcMotor(value, direction); break;}

case 2:{BoMotor(value,direction);break;}

case 3:{ServoMotor(value,direction);break;}

case 0:{DcMotor(0,direction);BoMotor(0,direction);break;}

}

}

}

void DcMotor(int speed, int dir)

{

analogWrite(DcMotor_F,(speed+dir*speed)/2);

analogWrite(DcMotor_B,(speed-dir*speed)/2);

}

void BoMotor(int speed, int dir)

{

analogWrite(BoMotor_F,(speed+dir*speed)/2);

analogWrite(BoMotor_B,(speed-dir*speed)/2);

}

void ServoMotor(int angle, int dir)

{

myservo.write(angle);

delay(2000);

myservo.write(0);

}

第3步:连接智能手机

类似于之前关于使用HC-05和Arduino UNO的智能手机控制LED灯的文章,我们将继续通过HC-05蓝牙模块将我们的智能手机连接到arduino。

命令我们要发送的内容如下:

我想要Dc电机在正向运行PWM值为200,我发送:

1,1,200

如果相同的直流电机以反向150的PWM运行,我将发送:

1,-1,150

一般格式是:电机,方向,值

电机:1》直流电机,2》电机电机,3》伺服电机,0》停止正在运行的所有设备(和平:P)

方向:1》顺时针/正向,-1》逆时针/反向

值:PWM值从0到255;在伺服的情况下,这是角度

PS:在Dc电机和Bo电机的情况下,如果您发现电机正在旋转的方向与预期相反,只需交换指定的引脚编号前进和后退针脚的程序‘

例如:原始

#define DcMotor_F 6

#define DcMotor_B 11

已交换

#define DcMotor_F 11

#define DcMotor_B 6

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

    关注

    143

    文章

    9488

    浏览量

    153209
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    同惠TH2690LCR测试仪连接电脑的详细指南

    同惠TH2690LCR测试仪作为一款高精度阻抗测量仪器,广泛应用于电子元件检测与研发领域。通过连接电脑,用户可实现自动化测试、数据批量处理与深度分析。以下是该设备连接电脑的完整操作步骤及注意事项。
    的头像 发表于 11-19 18:05 986次阅读
    同惠TH2690LCR测试仪<b class='flag-5'>连接电</b>脑的详细指南

    正确的连接电机传动轴的几种常见连接方式及其优缺点

    在工业机械和自动化设备中,电机与传动轴的连接方式直接影响设备的运行效率、稳定性和使用寿命。选择合适的连接方式需要综合考虑负载特性、安装精度、维护便利性以及成本等因素。以下是几种常见的电机
    的头像 发表于 09-10 07:41 1793次阅读

    CYUSB3014在不关机的情况下USB 2.0的线连接电脑,计算机无法识别FX3,这种情况正常吗?

    我正在使用自供电模式的 CYUSB3014。我先用USB 3.0的线传输数据,然后再不关机的情况下USB 2.0的线连接电脑。计算机无法识别 FX3。这种情况正常吗?和USB传输协议有关系吗?
    发表于 07-28 06:25

    电机带负载是直接连接输出力大还是齿轮输出力矩大?

    在工业生产和机械设计中,电机作为动力源的核心部件,其输出方式的选择直接影响整个系统的性能表现。关于电机带负载时采用直接轴连接还是齿轮传动更有利于输出力或力矩的问题,需要从传动原理、机械特性、应用场
    的头像 发表于 07-27 22:04 626次阅读
    <b class='flag-5'>电机</b>带负载是直接<b class='flag-5'>用</b>轴<b class='flag-5'>连接</b>输出力大还是<b class='flag-5'>用</b>齿轮输出力矩大?

    广濑电机DF22系列铆压连接器新增分支转接器

    广濑电机发布的工业电源“DF22系列”铆压连接器,新增分支转接器。新产品应用了在信号连接器中积累的分支转接技术,可实现工业设备内部各单元
    的头像 发表于 05-15 16:06 708次阅读
    广濑<b class='flag-5'>电机</b>DF22系列铆压<b class='flag-5'>连接</b>器新增分支转接器

    请问DCA1000EVM+IWR6843ISK怎么连接电脑?

    DCA1000EVM+IWR6843ISK连接电脑的步骤,在Radar Studio V1.7.4.0软件上,RS232 connectivity status显示未连接
    发表于 02-25 06:14

    RCA接口连接电视和音响的方法

    使用RCA接口连接电视和音响的方法相对简单,以下是详细的步骤: 一、准备工具和材料 RCA音频线:这种线缆通常具有红、白两个插头,红色插头用于传输右声道音频信号,白色插头用于传输左声道音频
    的头像 发表于 02-17 15:39 5004次阅读

    用光机上的HDMI接口连接电脑,选择video mode模式,为什么不能投影出电脑的画面?

    用光机上的HDMI接口连接电脑,选择video mode模式,为什么不能投影出电脑的画面,其GUI的图片如下图所示
    发表于 02-17 07:16

    DAC900电流输出端可以直接连接电阻吗?对电阻的大小有什么要求?

    想问下DAC900电流输出端可以直接连接电阻吗?对电阻的大小有什么要求。
    发表于 02-12 06:20

    使用ADS1281的SPI采集数据,各个引脚应该怎么连接

    我想使用ADS1281的SPI采集数据,各个引脚应该怎么连接?那些是必须用I/O口,那些可以直接上拉或下啦,如果想预留PIN模式,怎样用最少的I/O口接线,还有同步输入引脚的作用是什么?应该怎么接线?谢谢
    发表于 02-10 06:52

    PCM1808的电压基准VREF由内部产生,这个VREF与VCC的连接电路具体是怎样的?

    ?芯片的datasheet 没有看到PSRR的图表数据,能否提供此项数据。 我注意到PCM1808的电压基准VREF由内部产生,这个VREF与VCC的连接电路具体是怎样的?简单来说VCC到VREF
    发表于 02-07 06:10

    ADS1293EVM如果ubs连接电脑,还需要外部供电吗?

    你好,我是一名在校大学生,刚刚接触ADS1293问题多多,请问如果ubs连接电脑,还需要外部供电吗?是不是只需要四根线将电极和输入端口连接,就可以自带的软件测出心电图?万分感谢!
    发表于 01-01 06:42

    LMP91000评估板连接电脑经常接不上是怎么回事?

    LMP91000评估板连接电脑经常接不上是怎么回事?
    发表于 12-26 08:02

    电视机顶盒连接电视的方法 电视机顶盒常见问题及解决办法

    电视机顶盒连接电视的方法 1. 准备工作 在开始连接之前,请确保您拥有以下物品: 电视机顶盒 电视机 HDMI线或AV线(根据电视机顶盒和电视机的接口类型) 电源适配器(如果电视机顶盒需要外部电源
    的头像 发表于 12-16 15:33 1.3w次阅读

    伺服电机连接器:长时间工作下的忠诚伙伴

    一、工业连接器与伺服电机电机的故事 在工业自动化的浪潮中,伺服电机作为精密控制的核心组件,扮演着至关重要的角色。而伺服电机连接器,这位默默无
    的头像 发表于 12-11 15:59 803次阅读
    伺服<b class='flag-5'>电机</b><b class='flag-5'>连接</b>器:长时间工作下的忠诚伙伴