如何使用micropython控制插入BBC microbit的水泵的速度

如何使用micropython控制插入BBC microbit的水泵的速度,python,micropython,bbc-microbit,Python,Micropython,Bbc Microbit,如何使用micropython控制插入BBC micro:bit的水泵的速度 到目前为止,我可以打开/关闭水泵,以下是我的代码: from microbit import * pin2.write_digital(1) sleep(1000) pin2.write_digital(0) 其连接方式: 快速连续打开或关闭: for loopcount in range(1, 1000): pin2.write_digital(1) sleep(2) pin2.write_

如何使用micropython控制插入BBC micro:bit的水泵的速度

到目前为止,我可以打开/关闭水泵,以下是我的代码:

from microbit import *
pin2.write_digital(1)
sleep(1000)
pin2.write_digital(0)
其连接方式:


快速连续打开或关闭:

for loopcount in range(1, 1000):
    pin2.write_digital(1)
    sleep(2)
    pin2.write_digital(0)
    sleep(2)

调整
sleep
调用以获得所需的流量

如果您使用晶体管开关控制直流电机(从图表上看就是这样),您应该能够使用脉宽调制(PWM)来改变速度-换句话说,通过在短时间内重复打开输出,然后在短时间内关闭输出,以通断时间的比率(占空比)改变速度确定电机的运行速度

您可以按照建议在代码中这样做,但是在micro:bit上的MicroPython中,您还可以使用Pin类的。这样你可以设置一个马达的速度,当你的程序继续做其他事情时,它会继续运行。您可能需要进行实验,以找到能够提供最佳控制的
时段设置

如果在循环中更新速度,请不要落入上述陷阱


离题了,看起来晶体管被配置为发射极跟随器。由于micro:位使用3.3 V逻辑,因此即使电池组中有6 V可用电压(假设图表准确),也只能以最大约2.7 V的电压驱动电机。为了获得更好的结果,您可能需要查找从逻辑输出切换大电流负载的其他方法,例如低压侧开关。如果你需要问一些关于这方面的问题,试试看

你认为我可以通过执行
pin2.write_analog()
来控制速度吗。试一试。这可能会很好地工作,也可能会损坏泵和/或其驱动电路-最好在试用前检查泵的开关方式。泵与micro:bit的接口如何?@nekomatic I发布了一张关于我如何连接所有设备的图片。