Robotics

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 (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 Docs>Motors.

Previous Next

Robotics

Table of Contents

Basics

  • Einrichten
  • Programm erstellen
  • Programm ausführen
  • Bestehendes Programm öffnen

Projekt 1 - Robo-Loop

  • Beep
  • Touch/Beep 1
  • Touch/Beep 2
  • Touch/Beep 3
  • Schnelle Schleife
  • Gebremste Schleife

Projekt 2 - Motor ansteuern

  • Motor starten
  • Motor stoppen
  • Start und Stopp

Sensoren

  • Tasten
  • Distanzsensor
  • Farbsensor
  • Lagesensor

Aktoren

  • Beep
  • Motoren

LEGO-Bauanleitungen

  • Anheben
  • Bewegung übertragen
  • Greifen
  • Schalter

Ein paar Tipps und Tricks

  • FAQ