Как контролировать скорость водяного насоса, подключенного к микробиту BBC, с помощью микропитона

Как контролировать скорость водяного насоса, подключенного к BBC micro:bit, с помощью micropython?

Пока что для управления водяным насосом я могу включать/выключать его, вот мой код:

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

Как это связано:


person Abdullah    schedule 09.02.2020    source источник
comment
Как помпа связана с micro:bit?   -  person nekomatic    schedule 11.02.2020
comment
@nekomatic Я выложил картинку в вопросе, как я все подключил.   -  person Abdullah    schedule 15.02.2020


Ответы (2)


Включите его в быстрой последовательности:

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

Настройте вызовы sleep, чтобы получить желаемый поток.

person Bob Jarvis - Reinstate Monica    schedule 09.02.2020
comment
Как вы думаете, я могу контролировать скорость, выполняя pin2.write_analog() - person Abdullah; 09.02.2020
comment
Может быть. Попробуйте. - person Bob Jarvis - Reinstate Monica; 09.02.2020
comment
Это может работать идеально или может повредить насос и/или его приводную цепь — лучше всего проверить, как насос переключается, прежде чем пробовать его. - person nekomatic; 11.02.2020

Если вы управляете двигателем постоянного тока с помощью транзисторного переключателя, как это выглядит на вашей схеме, вы должны иметь возможность изменять скорость с помощью широтно-импульсной модуляции (ШИМ), другими словами, многократно включая выход в течение короткое время, затем короткое время выключается, причем отношение времени включения к времени выключения (коэффициент заполнения) определяет, насколько быстро работает двигатель.

Вы можете сделать это в коде, как предлагает ответ Боба, но в MicroPython на micro:bit вы также можете генерировать PWM, используя write_analogметод класса Pin. Таким образом, вы можете установить скорость двигателя, и он будет продолжать работать, пока ваша программа продолжает делать что-то еще. Возможно, вам придется поэкспериментировать, чтобы найти параметр period, обеспечивающий наилучший контроль.

Если вы обновляете скорость в цикле, не попадитесь в ловушку, описанную здесь.

Не по теме, похоже, ваш транзистор настроен как эмиттерный повторитель. Поскольку micro:bit использует логику 3,3 В, это будет управлять двигателем только с максимальным напряжением около 2,7 В, даже если у вас есть 6 В от аккумуляторной батареи (при условии, что ваша диаграмма верна). Для лучших результатов вы можете поискать другие методы переключения сильноточной нагрузки с логического выхода, например. низкий боковой переключатель. Если вам нужно задать вопросы об этом, попробуйте Электроника.

person nekomatic    schedule 20.02.2020