在闪烁一个LED并将一个16 × 2的LCD显示屏与树莓派连接之后,下一个重要的项目涉及到用树莓派控制直流电机。
通过成功地用树莓派控制直流电机,我们可以将其用于各种其他应用,如机器人,遥控汽车,风扇和其他电机相关的应用。
这个项目的目的是安全连接电机到树莓派和控制它,即使它向前或向后旋转。
请注意:我将在这个项目中使用一个电机驱动器,它可以处理最多两个电机。因此,有一个单独控制两个电机的规定。
在继续这个项目之前,先了解一下如何安装没有显示器和键盘的树莓派
操作原理
用树莓派控制直流电机的主要原理在于电机驱动器。电机驱动器是一种特殊的电路或集成电路,为电机的平稳和安全运行提供必要的电源(或更确切地说是电流)。
即使是一个小的5V直流电机也能产生大约300 - 400毫安的高初始电流。这个电流将下降150 - 200毫安,因为电机的速度增加到左右。
这对于微控制器、Arduino、树莓派等设备来说是一个巨大的潮流。因此,我们不应该将电机直接连接到树莓派(或任何其他微控制器)。
在这种情况下,汽车驾驶员扮演着重要的角色。它们从树莓派接收控制信号,并从电源为电机提供必要的驱动电流。
在本项目中,电机驱动器(L293D)通过GPIO引脚提供来自树莓派的两个控制信号。根据Python程序,电机将向前或反向旋转。
线路图
弗里茨形象
正如我之前所说,使用L293D电机驱动IC,我们实际上可以控制两个电机。为了简单起见,我将演示用树莓派控制单个直流电机的电路、工作和程序。下图是项目的Fritzing图。
线路图
本项目电路接线图如下图所示。使用树莓派和L293D电机驱动IC,您可以轻松配置此电路和程序来控制两个直流电机。
组件的要求
- 树莓派3 B型
- L293D电机驱动IC或模块
- 小型直流电机(5V)
- 接线(跳线)
- 5V - 2A树莓派电源
- 5V电机电源
- 杂项(电脑、以太网线等)
L293D电机驱动IC简介
我用L293D电机驱动IC控制树莓派直流电机。它是一种非常常见的电机驱动IC,能够驱动两个电机的单独电流高达600mA。
L293D电机驱动IC的引脚图,以及引脚描述如下图所示。
电路设计
用树莓派控制直流电机的电路设计非常简单。首先,将L293D的引脚8和16 (VCC2和VCC1)连接到外部5V电源(假设您正在使用5V电机)。
L293D上有四个接地引脚。将引脚4连接到电源的GND上。同时,将L293D的接地引脚与树莓派的GND引脚连接。
最后,我们有使能和控制输入引脚。将L293D (1,2 en)的pin 1连接到树莓派的GPIO25 (Physical pin 22)上。然后将控制输入引脚2和7 (1A和2A)分别连接到GPIO24(物理引脚18)和GPIO23(物理引脚16)。
可选:如果您想连接第二个电机,所有您需要连接的是Enable (3,4en)和第二个电机控制输入(3A和4A)到树莓派的三个不同的GPIO引脚。
也可以阅读这个简单的项目:如何使用树莓派和Python闪烁LED
用树莓派控制直流电机的Python程序
项目工作和代码解释
如何运营项目?
在接通电源之前,请确认电机、电源和树莓派的所有连接正确。对于编程,我将使用Python。
现在,打开树莓派的终端,使用Vim编辑器和以下命令创建一个新的Python文件“dcmotorPi.py”。
在编辑器中复制并粘贴上述程序并保存文件。请注意:我已经将Python程序保存在树莓派桌面的Python_Progs文件夹中。现在,为了运行程序,在终端中输入以下命令。
电机现在将向前旋转3秒,然后向反方向旋转3秒,最后停止。几秒钟后,这个过程继续,直到CRTL + C压在终端上。
代码的解释
如果你跟随了我早期的项目如何使用树莓派闪烁LED和接口与树莓派16 × 2液晶,你可以很容易地理解这段代码。
首先,我们需要使用Python访问GPIO引脚。因此,我们需要导入模块RPi。GPIO输入到我们的程序中。类似地,模块time允许我们使用它的sleep函数在预定义的时间内暂停程序。
现在,我已经为L293D电机驱动IC分配了引脚(使能和两个控制输入)。此外,引脚模式设置为GPIO编号格式。
现在,所有的引脚都声明为输出。对于正向旋转,使能引脚设为高,控制输入1A设为高,另一个控制输入1B设为低。
延时三秒后,控制输入1A为低,控制输入1B为高,同时保持使能引脚高。这将使电机向相反的方向旋转。
最后,经过三秒钟的延迟,电机将停止旋转,并来到停止。这个过程一直重复,直到我们在终端中按下CTRL+C。
应用程序
- 直流电机随处可见:机器人、无人机、遥控汽车等。通过用树莓派控制直流电机,我们可以用树莓派开发许多电机相关的项目。
- 能不能用在基于树莓派的机器人应用中呢行追随者机器人、避障机器人、四轴飞行器、网控机器人等。
7反应
这就跟你问声好!我需要处理5直流电机与覆盆子,只是在一个方向。L293D可以吗?
是的,通过编辑python代码是可能的
这个电路能承受12V电源吗?
不。
我可以在哪里画出树莓派的原理图?
任何软件的名字吗?
普罗透斯软件
感谢教程-工作伟大!