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

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

3天内不再提示

怎样用Arduino控制直流电机

454398 来源:wv 2019-09-27 14:25 次阅读

步骤1:设置

软件

在此步骤中,我将提供零件清单和下载Arduino软件的链接。我为此项目使用了Arduino Create。您可以使用Arduino程序执行相同的操作,该程序可从此处下载。

部件列表:

Arduino Uno(其他板可能

标准直流电动机

L293DNE H桥

2个按钮

跳线

面包板

所有这些物品都可以很便宜地在线购买。

步骤2:串行通信-接线

首先,让我们进行串行通信。如图所示连接Arduino。

第3步:串行通信-代码

现在,您已将Arduino连接好,将代码复制并粘贴到Arduino IDE。将读取此代码的作用,以获取您将在串行监视器中手动键入的信号。输入1或2时,电动机将在短时间内顺时针或逆时针旋转。做一点实验!键入多个1或2,然后看看会发生什么!

int in1pin = 6;

int in2pin = 7; // connections to H-Bridge, clockwise / counter

char receivedChar; // store info

boolean newData = false; // create a true/false statement

void setup() {

pinMode(in1pin, OUTPUT);

pinMode(in2pin, OUTPUT); // set pins to OUTPUTS

Serial.begin(9600); // start up serial communication

}

void loop() {

recvData(); // read and store data

moveMotor(); // move motor according to data and then reset

}

void recvData() {

if (Serial.available() 》 0) { // if the serial monitor has a reading

receivedChar = Serial.read(); // set char to be what is read

newData = true; // make statement true

}

}

void moveMotor() {

int motordirection = (receivedChar - ‘0’); // turn recieved data into usable form and give it a name

while(newData == true) {

Serial.println(motordirection); // print motor direction

if (motordirection == 1) { // if it reads 1.。.

digitalWrite(in1pin, HIGH); // turn motor one way

digitalWrite(in2pin, LOW);

delay(250);

}

else if (motordirection == 2) { // if it reads 2.。.

digitalWrite(in1pin, LOW); // turn motor other way

digitalWrite(in2pin, HIGH);

delay(250);

}

else { // if nothing is read

digitalWrite(in1pin, LOW); // motor is off

digitalWrite(in2pin, LOW);

}

newData = false; // reset value to false

}

}

步骤4:按钮命令-接线

要进行按钮通讯,请如图所示添加按钮。

第5步:按钮命令-代码

现在,制作新草图并复制并粘贴此代码,然后播放周围。

int in1pin = 6;

int in2pin = 7; // h bridge pins

int leftButton = 8;

int rightButton = 9; // buttons

void setup() {

pinMode(in1pin, OUTPUT);

pinMode(in2pin, OUTPUT); // outputs

pinMode(leftButton, INPUT_PULLUP);

pinMode(rightButton, INPUT_PULLUP); // inputs w internal pullup resistors

}

void loop() {

int leftPinState = digitalRead(leftButton);

int rightPinState = digitalRead(rightButton); // set value names for read data

if (leftPinState == LOW) { // if left button is pressed 。..

digitalWrite(in1pin, HIGH); // make motor go one way

digitalWrite(in2pin, LOW);

}

else if (rightPinState == LOW) { // if right button is pressed 。..

digitalWrite(in1pin, LOW);

digitalWrite(in2pin, HIGH); // make motor go other way

}

else { // if neither button is pressed 。..

digitalWrite(in1pin, LOW); // nothing happens

digitalWrite(in2pin, LOW);

}

}

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

    关注

    35

    文章

    1623

    浏览量

    69465
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184825
收藏 人收藏

    评论

    相关推荐

    直流电机是否可以变频器控制

    突然想到一个问题,交流电机变频器控制调速,那么直流电机什么设备调速。根据电机原理,
    发表于 02-10 17:36

    直流电机控制器电路图分享

    直流电机控制器是一种电子控制系统,用于控制直流电机的转速、转向和扭矩等参数,从而实现直流电机的自
    的头像 发表于 02-04 15:52 1470次阅读
    <b class='flag-5'>直流电机</b><b class='flag-5'>控制</b>器电路图分享

    直流电机的励磁是直流电吗?直流电机励磁的作用?

    直流电机的励磁是直流电吗?直流电机励磁的作用?直流电机励磁方式的区分  直流电机的励磁是直流电
    的头像 发表于 01-18 16:07 971次阅读

    直流电机加一固定直流电源能转吗?

    直流电机加一固定直流电源能转吗?如果不能为什么,该怎样测验。我想通过实验的方法检测直流电机好坏。
    发表于 01-01 06:49

    直流电机驱动电路结构组成

    直流电机驱动电路是一种将直流电源转换为直流电机所需的电流和电压的电路。它主要由电源模块、电流控制模块和速度控制模块组成。这些模块的功能和相互
    的头像 发表于 12-20 17:11 590次阅读

    直流电机控制电路的工作原理

    直流电机是一种将直流电能转化为机械能的装置,广泛应用于电动机、发电机等领域。直流电机控制电路是对直流电机
    的头像 发表于 12-20 14:39 690次阅读

    直流电机emf怎么计算

    直流电机电动势(emf)的计算涉及到一系列的物理和数学原理。在这篇文章中,我将详细介绍直流电机电动势的计算方法,包括电源电动势、气隙电动势以及绕组电动势。希望这篇文章能帮助您深入了解直流电机
    的头像 发表于 12-15 15:30 786次阅读

    直流电机制动是电机抖动的原因吗

    直流电机制动是电机抖动的原因吗 直流电机制动是导致电机抖动的一个可能原因,但并不是唯一的原因。 1. 引言 直流电机在许多应用中被广泛使用,
    的头像 发表于 11-23 10:54 559次阅读

    直流电机是什么 直流电机有几种

    直流电机直流电机中还分为普通的直流电机直流减速电机,有刷和无刷,共分为: 直流有刷
    的头像 发表于 11-16 16:01 1022次阅读
    <b class='flag-5'>直流电机</b>是什么 <b class='flag-5'>直流电机</b>有几种

    他励直流电机的工作原理

    与其他类型的直流电机相比,他励直流电机励磁绕组和转子绕组分别供电,需要两个电源。其他直流电机只需要一个电源。
    的头像 发表于 10-17 14:36 1971次阅读
    他励<b class='flag-5'>直流电机</b>的工作原理

    直流电机的主要部件有哪些?直流电机有何作用?

    直流电机的定子是产生电机磁场的部分,由机座、主磁极、励磁绕组、换向极组成。
    发表于 08-16 14:49 1629次阅读
    <b class='flag-5'>直流电机</b>的主要部件有哪些?<b class='flag-5'>直流电机</b>有何作用?

    为什么直流电机需要控制器来控制电机速度和输出转矩?

    直流电机控制器是将电能转换为机械能的一种特殊类型的电气设备,直流电机通过利用直流电来接收电能,然后将这种能量转换为电机的自动旋转。
    的头像 发表于 07-19 16:51 494次阅读
    为什么<b class='flag-5'>直流电机</b>需要<b class='flag-5'>控制</b>器来<b class='flag-5'>控制</b><b class='flag-5'>电机</b>速度和输出转矩?

    使用Arduino控制直流电机

    电子发烧友网站提供《使用Arduino控制直流电机.zip》资料免费下载
    发表于 07-03 11:04 0次下载
    使用<b class='flag-5'>Arduino</b>来<b class='flag-5'>控制</b><b class='flag-5'>直流电机</b>

    无刷直流电机32位MCU解决方案

    无刷直流电动机的工作原理:无刷直流电机是永磁式同步电机的一种,而并不是真正的直流电机。区别于有刷直流电机,无刷
    的头像 发表于 06-30 17:05 474次阅读

    使用Arduino直流电机MOSFET控制速度

    电子发烧友网站提供《使用Arduino直流电机MOSFET控制速度.zip》资料免费下载
    发表于 06-27 15:13 0次下载
    使用<b class='flag-5'>Arduino</b>的<b class='flag-5'>直流电机</b>MOSFET<b class='flag-5'>控制</b>速度