如何使用树莓派控制直流电机

电子说

1.2w人已加入

描述

通过使用Raspberry Pi成功控制直流电机,我们可以将它用于各种其他应用,如机器人,遥控(RC)汽车,风扇和其他相关的电机这个项目的目的是将电机安全地连接到Raspberry Pi并控制它,即使其向前或向后旋转。

注意 :我将在这个项目中使用电机驱动器,最多可以处理两个电机。因此,可以单独控制两台电机。

在继续这个项目之前,先了解 如何设置没有监视器的Raspberry Pi和键盘

工作原理

使用Raspberry Pi控制直流电机的主要原理在于电机驱动器。电机驱动器是一种特殊电路或IC,可为电机提供必要的电源(或更确切地说是电流),以实现平稳安全的运行。

即使是小型5V直流电机也可以初始电流约为300 - 400 mA。当电机加速到大约时,该电流将下降150 - 200 mA。

对于微控制器,Arduino,Raspberry Pi等设备而言,这是一个巨大的潮流。因此,我们不应该将电机直接连接到Raspberry Pi(或任何其他微控制器)。

电机驱动器在这种情况下起着重要作用。它们从Raspberry Pi获取控制信号,并通过电源为电机提供必要的驱动电流。

在这个项目中,电机驱动器(L293D)有两个通过GPIO引脚控制来自Raspberry Pi的信号。根据Python程序,电机将正向或反向旋转。

电路图

Fritzing Image

正如我之前所说,使用L293D电机驱动器IC,我们实际上可以控制两台电机。为简单起见,我将演示使用Raspberry Pi控制单个直流电机的电路,工作和程序。下图是项目的Fritzing图。

树莓派

电路图

项目的电路接线图如下所示。您可以轻松配置此电路以及使用Raspberry Pi和L293D电机驱动器IC控制两个直流电机的程序。

树莓派

必需的组件

Raspberry Pi 3 B型

L293D电机驱动器IC或模块

小型直流电机(5V)

连接线(跳线)

用于Raspberry Pi的5V - 2A电源

用于电机的5V电源

其他(计算机,以太网)电缆等。)

关于L293D电机驱动器IC的简要说明

我使用L293D电机驱动器IC来控制带Raspberry Pi的直流电机。它是一种非常常见的电机驱动器IC,能够驱动两个电机,单个电流高达600mA。

L293D电机驱动器IC的引脚图,以及引脚说明如下图所示。

树莓派

电路设计

使用Raspberry Pi控制直流电机的电路设计非常简单。首先,将L293D的引脚8和16(VCC2和VCC1)连接到外部5V电源(假设您使用的是5V电机)。

L293D上有四个接地引脚。将引脚4连接到电源的GND。另外,将L293D的接地引脚连接到Raspberry Pi的GND引脚。

最后,我们有使能和控制输入引脚。将L293D(1,2EN)的引脚1连接到Raspberry Pi的GPIO25(物理引脚22)。然后将控制输入引脚2和7(1A和2A)分别连接到GPIO24(物理引脚18)和GPIO23(物理引脚16)。

可选:如果要连接第二个电机,你需要连接的是启用(3,4EN)和第二个电机控制输入(3A和4A)到Raspberry Pi的三个不同的GPIO引脚。

还阅读这个简单的项目: 如何使用Raspberry Pi和Python使LED闪烁

Python程序用Raspberry Pi控制直流电机

项目工作和代码说明

如何操作项目?

打开电源之前供电,确保所有与电机,电源和Raspberry Pi相关的连接都是正确的。对于编程,我将使用Python。

现在,在Raspberry Pi中打开终端并使用Vim Editor和以下内容创建一个新的Python文件“dcmotorPi.py”命令。

sudo vim dcmotorPi.py

将上述程序复制并粘贴到编辑器中并保存文件。 注意 :我已将Python程序保存在Raspberry Pi桌面上名为Python_Progs的文件夹中。现在,为了运行程序,在终端中输入以下命令。

sudo python dcmotorPi.py

电机现在将向前旋转3秒钟,然后反向旋转3秒钟,最后停止。几秒钟后,该过程将继续,直到在终端中按下 CRTL + C 。

代码说明

如果您已经按照我之前关于如何使用Raspberry Pi闪烁LED并使用Raspberry Pi连接16 x 2 LCD的项目,您可以轻松理解此代码。

首先,我们需要使用Python访问GPIO引脚。因此,我们需要将模块RPi.GPIO导入到我们的程序中。同样,模块时间允许我们使用其功能睡眠暂停程序一段预定义的时间。

现在,我为L293D电机驱动器IC分配了引脚(启用和两个控制输入)。此外,引脚模式设置为GPIO编号格式。

现在,所有引脚都被声明为输出。正向旋转时,使能引脚变为高电平,控制输入1A变为高电平,另一个控制输入1B变为低电平。

延迟三秒后,控制输入1A变为低电平,控制输入1B变为高电平,同时保持使能引脚为高电平。这将使电机反向旋转。

最后,在延迟三秒后,电机将停止旋转并停止。重复此过程,直到我们在终端中按CTRL + C.

应用程序

直流电机随处可见:机器人,无人驾驶飞机,遥控车等。通过使用Raspberry Pi控制直流电机,我们可以使用Raspberry Pi开发许多与电机相关的项目。

可用于基于Raspberry Pi的机器人应用,如线跟随机器人,障碍避免机器人,四轴飞行器,网络控制机器人等。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
marix 2021-03-28
0 回复 举报
文中的代码怎么没有显示? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分