情景
需要实现电机的正转与反转。
解决方案
使用H桥来切换电机的电源两端输入, 从而实现正转与反转。我们将使用L293D型号, 一个H桥单片机。
一下是所需要准备的:
- 3V至5V电机 (参考 Miscellaneous)
- 面包板与跳线 (参考Prototyping Equipment)
- L293D H桥电路 (参考Integrated Circuits)
- 电机供应电源 (可选)
如下图 Figure 4-4 连接面包板,确保L293D已经正确放置,其有一端是凹下去的, 容易辨认。
浅析
H桥提供了一个简单的方式去切换电机的引导线, 从而实现了反转。图4-5说明了H桥的工作原理。
连接到电机(符号M表示)的4个开关就是H桥。在左图中,两个开关是断开的, 电机左端连着正极, 右端连着地极,这样使得电机往其中一个方向旋转。而右图则刚好相反,使得电机往反方向旋转。
代码中,in1和in2用来分别控制两个开关对。(L293D有4对这样的开关, 但我们只用了其中两对)。因此要顺时针转,只要设置in1为HIGH, in2为LOW;逆时针转,则设置相反的值。
L293D有一个"启用"pin脚(pin 9, 在底部右边), 可以通过PWM信号来控制转速。(详情参考 Controlling the Speed of a DC Motor )
在代码末尾, 方法
process.on()可以检测用户是否按了Ctrl+C, 是的话则停止时钟并且关闭电机。如果你没有发出这样的信号,它会一直旋转。
驱动5V直流电机
之前的例子是使用了3.3V工作电压的直流电机。如果是5V工作电压的电机呢?可以切换BBB pin脚获得 (从BBB上的P9_7接到L293D的pin8) 如图 4-6 所示. 如果你的电机不会产生过大电流, 这样会正常工作。
如果5V不够, 或者BBB供电不足, 则需要外接电源了。 如图4-7 所示:
总结: H桥提供了一种方式去控制直流电机的转向, 同时提供了引脚支持PWM信号来控制转速。