motor-shield-power-driver.py
# Este trabalho está licenciado sob a licença MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos os direitos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Exemplo de Driver de Potência com Motor Shield
#
# Este exemplo mostra como usar seu motor shield
# para controlar chaves de alta corrente, entre outras coisas. Como
# o motor shield fornece dois drivers de ponte H, ele é
# capaz de fornecer 4 saídas push-pull de alta corrente.
# Cada saída pode fornecer até 1A, respectivamente.
import pyb
# Estes serão os pinos que controlamos para acionar
# os lados da ponte H como quisermos.
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)
# Cria um objeto timer rodando a 1KHz que vai alimentar a
# saída PWM na sua OpenMV Cam. Só precisa ser criado uma vez.
tim = pyb.Timer(4, freq=1000)
# Estes canais PWM vão definir a porcentagem de PWM no par de
# drivers de ponte H acima. Se quiser mudar a potência do driver
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)