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

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

3天内不再提示

树莓派和L293D的直流电动机控制

454398 来源:wv 作者:快科技 2019-09-26 10:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:材料和工具

树莓派和L293D的直流电动机控制

材料

Raspberry Pi 3(RPi)

L293D控制IC

面包板

跳线电线,公对公(M/M)和母对公(F/M)

直流电动机

9v电池

**在此项目中,必须访问Raspberry Pi桌面。可以通过将监视器,键盘和鼠标插入RPi或使用SSH连接来完成。**

该项目无需任何工具,因为这些连接都不是永久性的,无需使用跳线和面包板。如果要制作永久的,更耐用的版本,只需用烙铁和一些导线进行相同的连接即可。

步骤2:背景信息。

**这是所有背景信息。如果您不关心如何完成此操作,而只是想在不学习的情况下进行操作,请跳至第3步。**

在此项目中,我们使用的是python脚本Raspberry Pi可将GPIO输出设置为L293D电机控制器IC,并以任意速度在任一方向上运行DC电机

首先, Raspberry Pi是具有40个GPIO引脚的开源信用卡大小的计算机。 GPIO代表“通用输入/输出”,这意味着这些引脚可以发送电信号来驱动硬件或接收它们并读取传感器数据。我们将它们用作输出,以将信号发送到L293D IC芯片,该芯片只是用于控制直流电动机的芯片。没什么特别的。

Python是一种计算机编程语言,可与Javascript或C ++相提并论。我们将使用非常简单的python命令,不需要任何计算机编程知识。

控制电动机速度的方法是使用称为PWM的python模块。代表脉冲宽度调制。 PWM的意思是通过在高电平和低电平之间切换设定的时间量来控制电压接通的时间量。电压高的时间称为“占空比”或“占空比”,无论该百分比是电动机运行的功率百分比。

要查看PWM作为输出的外观,请参考上图。

L293D电机IC使用两个引脚(称为输入)感测所需的输出方向,以及另一个引脚(使能)感测开/关。因此,在我们的代码中,在使能引脚为ON的情况下,如果我们希望电动机正转,则将输入1设置为“ True”或“ HIGH”,将输入2设置为“ False”或“ LOW”。如果希望它向后旋转,我们将输入1设置为“ False”或“ LOW”,将输入2设置为“ True”或“ HIGH”。如果两个输入均为True或均为False,则电动机将不会运行。

这就是我们控制方向的方式,但是速度呢?我们说的是PWM对吗?因此,我们将仅对两个输入进行脉宽调制,对吗?我们可以,但是太复杂了。由于IC具有一个使能引脚来控制其开/关状态的Enable引脚,因此我们可以将两个输入都保持为运行状态,而仅调制Enable引脚,并且IC只会根据我们在Enable引脚中设置的占空比来输出功率。这样,我们可以简化代码,减少出错的地方。

因此,在Raspberry Pi上,我们将在GPIO板上使用3个GPIO输出引脚,一个3.3V电源和一个一根接地针。输出引脚中的2个用于IC上的输入,一个用于使能。

现在我们知道会发生什么,现在该开始进行接线了。

步骤3:硬件设置

上面的图片可能看起来像是混乱的电线,但不要担心。

首先要做的是将L293D芯片放在试验板上。面包板的中间应有一个缝隙,如一个缝隙,并且IC芯片应将其一半左右的引脚很好地跨在上面,因此它与板平行。

接下来,这很重要将电线插入正确的面包板插槽,因此我建议对电线进行颜色编码。我将红色用于正极电源连接,将黑色用于负极电源连接(接地),将蓝色用于RPi的输入,将橙色用于电动机的输出。

您可能会注意到有两套电源线。这是因为直流电动机应至少在9V和400mA的电流下运行,而电动机控制IC的电压应在5V或3.3V且小于20mA。因此,在这种设置中,IC芯片需要3.3V的电源,并通过接地(负电源插头)连接到RPI。然后它还具有9V的电源和来自电池的接地,然后通过芯片将其路由到电动机。 重要提示:请勿尝试从RPi汲取9V和400mA电流或通过IC芯片运行9V。这可能会损坏RPi和/或L293D。为确保将电压路由到正确的引脚,请使用上图。

要知道IC芯片的哪一端,请在与上图相对应的一端寻找一个小半圆缺口。

现在,您拥有L293D IC在面包板上,首先我们将M/F跳线连接到RPi。因此,在面包板上,将跳线的公端放入旁边的插槽中:Vss,Enable 1,Input 1,Input 2和左侧的GND引脚。应该有5根电线准备连接到RPi。有关引脚号,请参见上图。现在,将电线从Vss(我希望您将其变成红色)连接到Pi或1号针上的5V电源。接下来,将GND跳线(再次希望是黑色的)连接到GND引脚或引脚6。之后,将输入1跳线连接到GPIO2或引脚#3。然后将跳线从输入2连接到GPIO3或引脚5。最后,将Enable 1跳线连接到GPIO4或引脚7。到了,再也没有M/F跳线了!到一半了!

所以,现在抓住M/M跳线。其中之一应从IC的Vs引脚到9V的正端。有很多方法可以将其保留在电池上,但是只要金属两端牢固接触,胶带就可以使用。用黑色M/M跳线将电池的负极端连接到IC的另一个GND引脚。最后,只需将IC上的两个输出引脚连接到电动机的两端即可!而已!现在,一切都按照所需的方式进行了布线,不再需要任何硬件工作。上软件。

步骤4:软件设置

首先,我们需要在Pi上打开一个程序来编写代码。我们将使用IDLE 2,因此请转到桌面的左上角,依次单击“菜单”,“编程”和“ Python 2(IDLE)”。您应该看到带有未命名文档的空白文本编辑器。

我们需要做的第一件事是导入GPIO模块。因此,在第一行中,准确键入对CaSe敏感的

import RPi.GPIO as GPIO

这将导入GPIO模块

下一步,我们需要一个名为“ sleep”的命令,因此编写

from time import sleep

下一步,我们需要命名所有引脚,因此通过写入设置命名模式

GPIO.setmode(GPIO.BOARD)

,这会将名称设置为电路板模式,从而只需根据上图中间的数字命名引脚。

现在我们需要将引脚设置为输出,所以现在写

GPIO.setup(03, GPIO.OUT) GPIO.setup(05, GPIO.OUT) GPIO.setup(07, GPIO.OUT)

现在设置pwm命令类型

pwm=GPIO.PWM(07, 100)

下一步以0占空比启动脉冲宽度调制,因此它尚未运行

pwm.start(0)

其余代码根据我们想要的方式而变化运行马达。对于第一遍,我们将在代码中设置预定义的指令。稍后,我将说明如何编写代码,让您输入所需的方向,任务和持续时间。

因此,到目前为止,我们将编写一个代码,该代码以50%的功率向前运行2秒,然后以75%的功率向后运行3秒。

首先,要设置向前写入的方向

GPIO.output(03, True) GPIO.output(05, False)

现在,我们将PWM占空比设置为50%。写入

pwm.ChangeDutyCycle(50)

然后打开使能引脚

GPIO.output(07, True)

然后将代码休眠2秒钟,以便电动机运行

sleep(2)

现在关闭使能引脚

GPIO.output(07, False)

然后反转输入以将其设置为反转

GPIO.output(03, False) GPIO.output(05, True)

然后将PWM占空比更改为75%

pwm.ChangeDutyCycle(75)

,然后重新启用启用功能

GPIO.output(07, True)

使代码休眠3秒钟

sleep(3)

然后再关闭使能引脚

GPIO.output(07, False)

停止脉冲

pwm.stop()

并清除所有GPIO通道。

GPIO.cleanup()

就是这样!现在,您有了一个代码,它将使电动机以50%的速度向前运转2秒,然后以75%的速度向后运转3秒。按F5,然后保存以测试您的代码!

*注意:您可能会收到一条错误消息,指出所选的GPIO通道已在使用中。这不会影响您的项目,您可以通过在代码中写入“ GPIO.setwarnings(False)”来使警告停止出现。*

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

    关注

    7

    文章

    198

    浏览量

    23955
  • L293D
    +关注

    关注

    4

    文章

    50

    浏览量

    20565
  • 树莓派
    +关注

    关注

    122

    文章

    2070

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    直流电机的基本工作原理与结构

    直流电机的基本工作原理与结构 1.1直流电机的基本工作原理与结构 1.1.1直流电机的基本工作原理 直流电机分为直流电动机
    发表于 10-28 05:25

    无刷直流电动机电流连续控制方法研究与实现

    摘 要:为抑制无刷直流电动机换相期间电流的上升速度和下降速度不一致而造成的转矩脉动,探索采用三相电流连续控制方式抑制无刷直流电动机转矩脉动的方法。与传统方波相电流控制方式相比较,采用三
    发表于 08-01 12:27

    基于电感法无刷直流电动机的起动分析

    无刷直流电动机(以下简称无刷电机)正朝着无位置传感器控制方问发展。目前无位置传感器无刷电机使用较多的是反电动势法。反电动势法的主要问题是电机起动瞬间转速为零,反
    发表于 07-28 15:02

    无刷直流电机在电动转辙机中的应用

    1.使用无刷直流电机的必要性 目前,现场大量使用的 ZD6 系列电动转辙机,采用普通直流串激电动机作为动力源,具有运行效率高和调速性能好等优点。但传统的
    发表于 07-08 18:47

    无刷直流电机无位置传感器控制系统仿真研究

    摘要:通过分析无刷直流电动机数学模型,利用MalabSimulink对无刷直流电机无位置传感器控制系统进行了建模和仿真。分别用Simuink库中自带的电机模型,反电动势过零点检测法、速
    发表于 07-08 18:37

    无刷直流电机模糊自适应PID控制的研究

    共同建文了无刷直流电动机模糊自适应PID控制的仿真模型,充分发挥了PSIM和MATLAB/Simulink各自在仿真方面的优势,简化了建立仿真模型的过程。仿真结果表明,采用模糊PID集成控制算法能够使
    发表于 07-07 18:29

    基于高效DC/DC电源模块的电动控制系统设计

    以无刷直流电动机为基础,介绍了一种基于高效DC/D C 电源模块的电动控制系统。讨论了无刷直流电动机的组成和基本工作原理,设计了包括电源电
    的头像 发表于 06-19 09:48 2.1w次阅读
    基于高效DC/DC电源模块的<b class='flag-5'>电动</b>车<b class='flag-5'>控制</b>系统设计

    直流电动机的电磁转矩和电枢电流由什么决定?

    直流电动机作为将电能转换为机械能的核心设备,其性能关键取决于电磁转矩与电枢电流的特性。这两者的关系及决定因素涉及电动机内部电磁作用与外部电路参数的复杂交互,需从基本原理、结构设计及运行条件等多维
    的头像 发表于 04-28 17:36 2383次阅读
    <b class='flag-5'>直流电动机</b>的电磁转矩和电枢电流由什么决定?

    电机控制专用集成电路PDF版

    直流电动机精密速度控制的锁相环集成电路作了专门介绍。 控制电机中的信号类元件自整角机、旋转变压器、感应同步器等均属模拟型控制元件,在计算机控制
    发表于 04-22 17:02

    免费的电机简要学习手册

    1.直流电机原理与控制方法2.直流电动机基本结构与工作原理 3.交流异步电机简介 4.转子磁链定向矢量控制 5.转子磁链计算 6.具体控制
    发表于 02-28 01:32

    直流电机参数免费发放

    直流电动机直流发电机、直流调压发电机三种,适用于一般正常的工作环境。电动机作一般传动用,发电机作为一般直流电源用,调压发电机作蓄电池组充电
    发表于 02-28 01:25

    直流电

    直流电机(direct current machine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋
    发表于 02-27 01:06

    直流电机的基本工作原理与结构

    本章主要讨论直流电机的基本结构和工作原理,讨论直流电机的磁场分布、感应电动势、电磁转矩、电枢反应及影响、换向及改善换向方法,从应用角度分析直流发电机的运行特性和
    发表于 02-27 01:03

    无刷直流电机的工作原理

    无刷直流电动机的工作原理普通直流电动机的电枢在转子上,而定子产生固定不动的磁场。为了使直流电动机旋转,需要通过换向器和电刷不断改变电枢绕组中电流的方向,使两个磁场的方向始终保持相互垂直,从而产生恒定
    发表于 02-27 01:00

    直流伺服电动机的分类和结构

    直流伺服电动机的分类和结构 直流伺服电动机按其结构原理不同,可分为传统型直流伺服电动机和低惯量型
    的头像 发表于 01-07 10:22 1676次阅读
    <b class='flag-5'>直流</b>伺服<b class='flag-5'>电动机</b>的分类和结构