motor-shield-power-driver.py
# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Пример силового драйвера на плате расширения для моторов
#
# Этот пример показывает, как использовать плату расширения для моторов
# для управления мощными переключателями тока и т. п. Поскольку
# плата расширения для моторов предоставляет два драйвера H-моста, она
# способна обеспечить 4 мощных двухтактных (push-pull) выхода.
# Каждый выход способен выдавать до 1 А.
import pyb
# Эти выводы мы будем использовать для управления
# сторонами H-моста по своему усмотрению.
pinA = pyb.Pin("P3", pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
pinB = pyb.Pin("P2", pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
pinC = pyb.Pin("P1", pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
pinD = pyb.Pin("P0", pyb.Pin.OUT_PP, pyb.Pin.PULL_NONE)
# Создать объект таймера с частотой 1 кГц, который будет питать
# выход ШИМ на вашей камере OpenMV Cam. Нужно создать только один раз.
tim = pyb.Timer(4, freq=1000)
# Эти каналы ШИМ будут задавать процент заполнения на паре драйверов
# H-моста выше. Если вы хотите изменить мощность драйвера
pinABPower = tim.channel(1, pyb.Timer.PWM, pin=pyb.Pin("P7"), pulse_width_percent=100)
pinCDPower = tim.channel(2, pyb.Timer.PWM, pin=pyb.Pin("P8"), pulse_width_percent=100)
while True:
pyb.delay(1000)
pinA.value(0)
pinB.value(1)
pinC.value(0)
pinD.value(1)
pyb.delay(1000)
pinA.value(1)
pinB.value(0)
pinC.value(1)
pinD.value(0)