motor-shield-power-driver.py
# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Ejemplo de driver de potencia con Motor Shield
#
# Este ejemplo muestra cómo usar su motor shield
# para controlar interruptores de alta corriente, entre otros. Dado que
# el motor shield proporciona dos controladores de puente H, es
# capaz de ofrecer 4 salidas push-pull de alta corriente.
# Cada salida puede entregar hasta 1A respectivamente.
import pyb
# Estos pines serán los que controlemos para manejar
# los lados del puente H como queramos.
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)
# Crea un objeto timer que funciona a 1KHz y que alimentará
# la salida PWM de su OpenMV Cam. Solo hay que crearlo una vez.
tim = pyb.Timer(4, freq=1000)
# Estos canales PWM establecerán el porcentaje de PWM en el par de
# controladores de puente H anterior. Si desea cambiar la potencia del controlador
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)