网站建设方案行业,岳阳网红,深圳品牌公寓,成都十大广告公司排名步骤1#xff1a;DC的控制方向通过RPi电机使用RPi控制直流电机我们的下一个任务是使用树莓派上的python脚本和GPIO头控制直流电动机#xff0c;这将在我们的脑海中产生一幅“机器人如何工作”的图景。您可以根据外面的天气来控制房间的风扇(因为您知道rpi会使用传感器)。完成…步骤1DC的控制方向通过RPi电机使用RPi控制直流电机我们的下一个任务是使用树莓派上的python脚本和GPIO头控制直流电动机这将在我们的脑海中产生一幅“机器人如何工作”的图景。您可以根据外面的天气来控制房间的风扇(因为您知道rpi会使用传感器)。完成所有这些操作将使您了解机器人技术的基本规则。我们将控制一个直流电动机该电动机至少需要400mA的电流才能正常工作但我们的RPi只能提供接近20mA的电流。这意味着我们必须在外部连接直流电源。这不成问题我们在市场上有6V和9V的小型电池。警告请勿将电机直接连接到Raspberry Pi否则会损坏Raspberry Pi。显然我们将需要一个电动机控制器IC来控制电动机的功能(顺时针或逆时针旋转)。最好从L293D电机控制器IC开始。要求·预先装有Raspbian的SD卡的Raspberry Pi·面包板·一个L293D电机驱动器集成电路·跳线(公对公母对公)·一台额定电压为6v的直流电动机·一块6V或9V电池。L293D这是一个电机驱动器IC我们可以一次控制2个电机。其引脚配置如下所示。它是一个16针IC在一侧包括一个Vcc(上电)一个GND针一个Enable针(用于打开和关闭电动机)两个输入对应两个输出。连接·首先将L293D的Vcc引脚连接到5V(也可以使用3.3V)·现在连接地线·使用GPIO-2、3、4来控制IC。(分别将GPIO-02和GPIO-03分别作为输入1和2)·将GPIO-04连接到IC的相应使能引脚。·现在终于将输出1和2连接到电动机的两个连接上如图所示。Python代码-导入RPi.GPIO作为GPIO从导入睡眠时间开始GPIO.setmode(GPIO.BCM)Motor1A 02Motor1B 03Motor1E 04的 GPIO.setup(Motor1AGPIO.OUT)GPIO.setup(Motor1BGPIO.OUT)GPIO.setup(Motor1EGPIO.OUT)打印“电动机要启动“GPIO.output(Motor1AGPIO.HIGH)以顺时针方向运行电动机GPIO.output (Motor1BGPIO.LOW)将其设置为高电平以使电动机沿逆时针方向旋转GPIO.output(Motor1EGPIO.HIGH)启动时应始终为高电机睡眠(5)打印“停止电机”GPIO.output(Motor1EGPIO.LOW)停止电动机后GPIO.cleanup()上面的代码您的电动机将开始沿顺时针方向旋转5秒钟。通过修改以上代码您可以将其反转。现在我们可以用两个或四个电动机来制造汽车。使用RPi控制直流电动机的速度您知道在某些地方我们需要也可以控制电动机的速度。通过以上主题您了解了电动机的ON-OFF控制但这还不够吗现在您应该在脑海中思考一个问题即我们如何从RPi的GPIO引脚产生模拟电压。没问题因为我们可以通过PWM(脉冲宽度调制)从中产生电压脉冲并控制GPIO引脚的输出电压。脉冲宽度调制这是一个非常简单的过程我们可以控制电源的电压频率。我们知道PWM模块可用于RPi中的GPIO。时间段 1/频率因此如果我选择100Hz的频率则意味着时间段为10m sec。 (电压被触发为“高”持续10m秒)。我们的电池为电动机提供9V的电压为了降低速度我们必须降低此电压。因此如果要将速度降低一半而不必将占空比(电压为高电平的时间段的百分比)更改为50。由于供应给电动机的电压由电机驱动器IC-L293N的使能引脚因此我们仅需将PWM应用于使能引脚即可改变速度。贝娄是理解PWM的python代码需要上一主题中的上述连接(通过RPi控制直流电动机)。》》》导入RPi.GPIO为GPIO导入GPIO库。》》从时间导入睡眠开始》》》 GPIO.setmode(GPIO.BCM)》》》 Motor1A 02将GPIO-02设置为控制器IC的输入1》》》 Motor1B 03设置GPIO- 03作为控制器IC的输入2》》》 Motor1E 04将GPIO-04设置为控制器IC的使能引脚1》》》 GPIO.setup(Motor1AGPIO.OUT)》》》 GPIO.setup(Motor1BGPIO.OUT)》》》GPIO.setup(Motor1EGPIO.OUT)》》》pwmGPIO.PWM(04100)配置启用引脚表示用于PWM的GPIO-04》》》 pwm.start(50)以50的占空比启动它》》》打印“前进”》》》 GPIO.output(Motor1AGPIO.HIGH)》》》 GPIO.output(Motor1BGPIO.LOW)》》》 GPIO.output(Motor1EGPIO.HIGH)》》》 sleep(2)##这将使电动机以50的速度向前运行2秒。》》》 pwm.ChangeDutyCycle(80)将占空比增加到80》》》打印“后退”》》》 GPIO.output(Motor1AGPIO.HIGH)》》》 GPIO.output(Motor1BGPIO.LOW)》》》 GPIO.output(Motor1EGPIO.HIGH)》》》睡眠(2)通过提供80的电池电压电动机将以80的速度反向运行2秒》》》打印“立即停止”》》》 GPIO.output(Motor1EGPIO.LOW)》 》》 pwm.stop()从GPIO输出中停止PWM是必要的》》》 GPIO.cleanup()打开APP精彩内容点击阅读全文