【问题标题】:How to control speed for a water pump plugged in a BBC microbit using micropython如何使用 micropython 控制插入 BBC microbit 的水泵的速度
【发布时间】:2020-05-25 02:09:59
【问题描述】:

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

到目前为止,要控制水泵,我可以打开/关闭它,这是我的代码:

from microbit import *
pin2.write_digital(1)
sleep(1000)
pin2.write_digital(0)

如何连接:

【问题讨论】:

  • 泵如何与 micro:bit 接口?
  • @nekomatic 我在我如何连接所有东西的问题中发布了一张图片。

标签: python micropython bbc-microbit


【解决方案1】:

快速连续打开和关闭:

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

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

【讨论】:

  • 你认为我可以通过pin2.write_analog()控制速度
  • 也许吧。试一试。
  • 这可能会完美运行,或者可能会损坏泵和/或其驱动电路 - 最好在尝试之前检查泵的切换方式。
【解决方案2】:

如果您使用晶体管开关控制直流电机,如图所示,您应该能够使用脉宽调制 (PWM) 来改变速度 - 换句话说,通过反复转动输出短时间开启然后关闭短时间,开启时间与关闭时间的比率(占空比)决定了电机的运行速度。

您可以按照Bob's answer 的建议在代码中执行此操作,但在 micro:bit 上的 MicroPython 中,您还可以使用 Pin 类的 write_analog method 生成 PWM。这样你就可以设置一个电机速度,它会在你的程序继续做其他事情的同时继续运行。您可能需要进行试验以找到能够提供最佳控制的period 设置。

如果您要循环更新速度,请不要陷入here 所述的陷阱。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 2017-05-22
    • 1970-01-01
    • 2018-03-14
    相关资源
    最近更新 更多