====== Motoren ansteuern ====== ===== Motor starten und stoppen (schwierig 🦊) ===== Drückst du den Touch-Sensor das erste Mal, so soll der Motor starten. Drückst du den Touch-Sensor ein zweites Mal, soll der Motor wieder stoppen. Beim dritten Mal wieder starten, beim vierten Mal wieder stoppen, usw. **Tipp**: Du brauchst zwei Hilfsvariablen. Die eine Hilfsvariable sorgt dafür, dass ein Knopfdruck nur einmal erkannt wird ([[projekt1:gebremsteschleife|bereits bekannt]]). Die andere Hilfsvariable gibt Auskunft darüber, ob den Motor gerade läuft oder nicht (und dann entsprechend bei Knopfdruck gestoppt oder gestartet werden muss). ++++ mögliche LÖSUNG | #!/usr/bin/env pybricks-micropython from pybricks.hubs import EV3Brick from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, InfraredSensor, UltrasonicSensor, GyroSensor) from pybricks.parameters import Port, Stop, Direction, Button, Color from pybricks.tools import wait, StopWatch, DataLog from pybricks.robotics import DriveBase from pybricks.media.ev3dev import SoundFile, ImageFile touch_sensor = TouchSensor(Port.S1) motor = Motor(Port.A) buttonAlreadyDown = False # Knopf schon vorher unten? motorRun = False # Läuft der Motor bereits? while True: if touch_sensor.pressed(): if not buttonAlreadyDown: # Knopf wird neu gedrückt buttonAlreadyDown = True # …also ist der Knopf jetzt unten. motorRun = not motorRun # Wahrheitswert wird invertiert… if motorRun: # …und der Motor gestartet… motor.run(100) else: # …oder angehalten. motor.stop() else: buttonAlreadyDown = False # Knopf wird wieder losgelassen wait(100) # 1/10 Sekunde warten ++++ Weitere Informationen zu Motoren findest du unter [[https://pybricks.com/ev3-micropython/ev3devices.html#motors|Docs>Motors]].