# Motorsteuerung eines Motorbootes
# Variante 1
import machine, time
# Ansteuerung der H-Brücke
ena = machine.PWM(machine.Pin(22)); ena.duty(0)
in1 = machine.Pin(21, machine.Pin.OUT); in1.value(0)
in2 = machine.Pin(19, machine.Pin.OUT); in2.value(0)
# Abfrage des Joysticks
horz = machine.ADC(machine.Pin(12)) # HORZ - analoger Eingang
vert = machine.ADC(machine.Pin(13)) # VERT - analoger Eingang
select = machine.ADC(machine.Pin(14)) # SEL - analoger oder digitaler Ausgang je nach Joystick
# Ansteuerung des Servomotors
servo = machine.PWM(machine.Pin(23), freq=50, duty=51)
# duty-Werte 25 ... 127 entspricht 0° ... 180°
for i in range(25,127,25):
servo.duty(i)
print(i)
time.sleep(0.9)
servo.duty(127)
while True:
x = horz.read()
y = vert.read()
print(x,y)
# Fahrtrichtung
if x<1000:
servo.duty(120)
print("stark links")
elif x<2500:
pass
elif x<3000:
pass
else:
servo.duty(30)
print("stark rechts")
# Motordrehrichtung und -drehzahl, Füge die Steueranweisungen zur Motorsteuerung hinzu!
if y>3500:
print("schnell vorwärts")
in1.value(1); in2.value(0);
ena.duty(255)
elif y>3000:
print("vorwärts")
elif y>2500:
print("langsam vorwärts")
elif y>1500:
print("Halt")
else:
pass
time.sleep(1.5)