Pomocí H-můstku s obvodem BTS7960 (hotový modul IBT-2) a Pica můžeme řídit rychlost a směr otáčení stejnosměrného kartáčového motoru.
-
Modul má napájení logiky: 3.3V až 5V
-
Napětí motoru: 6V až 27V
-
Maximální proud motorem: 43A (reálně do 20A kvůli svorkovnici a plošnému spoji)
-
Ochrana proti zkratu na motoru a zdroji.
Modul s 2x BTS7960 shora

Popis konektoru logiky
-
VCC: napájení logické části (3.3V až 5V)
-
GND: zem 0V
-
R_IS: měření proudu motorem
-
L_IS: měření proudu motorem
-
R_EN: zapnutí motoru
-
L_EN: zapnutí motoru
-
RPWM: PWM pulsy - řízení jedním směrem
-
LPWM: PWM pulsy - řízení opačným směrem
Modul s 2x BTS7960 zdola

Popis svorkovnice napájení a motoru
-
B+: kladné napětí zdroje motoru 6V až 27V
-
B-: zem napájecího zdroje
-
M+: vývod k motoru
-
M-: vývod k motoru
Zapojení obvodu Pico — H-můstek s BTS7960

# řízení stejnosměrného motoru H-můstkem BTS7960
from machine import Pin, PWM
from time import sleep
# nastavení pinů
r_en = Pin(16, Pin.OUT) # pin GP16 pro řízení - spojen s R_EN na H můstku (bílý)
l_en = Pin(17, Pin.OUT) # pin GP17 pro řízení - spojen s L_EN na H můstku (šedý)
# dopředu se motor točí pokud je r_en HIGH a l_en HIGH a PWM signál je na r_pwm
# dozadu se motor točí pokud je r_en HIGH a l_en HIGH a PWM sígnál je na l_pwm
r_pwm = PWM(Pin(20)) # pin GP20 pro nastavení rychlosti otáčení dopředu - spojen s RPWM na H můstku (fialový)
r_pwm.freq(300) # nastavení kmitočtu řízení 300 Hz
l_pwm = PWM(Pin(21)) # pin GP21 pro nastavení rychlosti otáčení dozadu - spojen s LPWM na H můstku (modrý)
l_pwm.freq(300) # nastavení kmitočtu řízení 300 Hz
# nastavení rychlosti dopředu, rychost musí být v rozsahu 0 - 65535
def motor_dopredu( rychlost ):
r_en.high()
l_en.high()
l_pwm.duty_u16( 0 )
r_pwm.duty_u16( rychlost )
# nastavení rychosti dozadu, rychlost musí být v rozsahu 0 - 65535
def motor_dozadu( rychlost ):
r_en.high()
l_en.high()
r_pwm.duty_u16( 0 )
l_pwm.duty_u16( rychlost )
# zastavení motoru
def motor_stop():
r_en.low()
l_en.low()
r_pwm.duty_u16(0)
l_pwm.duty_u16(0)
# testování
try:
while True:
print("Jedeme dopředu 25")
motor_dopredu(16384)
sleep(2)
print("Jedeme dopředu 50")
motor_dopredu(32762)
sleep(2)
print("Jedeme dopředu 91")
motor_dopredu(60000)
sleep(2)
print("Zastavíme")
motor_stop()
sleep(2)
print("Couváme 25")
motor_dozadu(16384)
sleep(2)
print("Zastavíme")
motor_stop()
sleep(2)
except KeyboardInterrupt:
motor_stop()
print("Zastavili jsme, konec programu.")
Fungující prototyp