motor-shield-power-driver.py
# Questo lavoro è concesso in licenza MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tutti i diritti riservati.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Esempio di driver di potenza dello shield motore
#
# Questo esempio mostra come utilizzare il motor shield
# per controllare interruttori ad alta corrente e simili. Poiché
# lo shield motore fornisce due driver a ponte H, è
# in grado di fornire 4 uscite push-pull ad alta corrente.
# Ciascuna uscita può erogare fino a 1A.
import pyb
# Questi saranno i pin che controlleremo per pilotare
# i lati del ponte H come desiderato.
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)
# Creare un oggetto timer che funzioni a 1KHz e che alimenterà
# l'uscita PWM sulla nostra OpenMV Cam. Deve essere creato una sola volta.
tim = pyb.Timer(4, freq=1000)
# Questi canali PWM imposteranno la percentuale PWM sulla coppia
# di driver a ponte H sopra indicata. Se si desidera modificare la potenza del 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)