Benutzer-Werkzeuge

Webseiten-Werkzeuge


hello_mbot_programmorganisation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hello_mbot_programmorganisation [2025/02/18 11:15] – [Beispiel] torsten.roehlhello_mbot_programmorganisation [2025/02/27 14:51] (aktuell) torsten.roehl
Zeile 5: Zeile 5:
 Die Steuerung erfolgt hier mit Hilfe der Infrarot-Fernbedienung.  Die Steuerung erfolgt hier mit Hilfe der Infrarot-Fernbedienung. 
  
-Alternativ kann man natürlich auch Bluetooth verwenden. Dies würde auch komplexere Abläufe ermöglichen, da man beispielsweise einen Rechner mit einem Python-Programm als Steuerung verwenden könnte.//+Alternativ kann man natürlich auch Bluetooth verwenden. Dies würde auch komplexere Abläufe ermöglichen, da man beispielsweise einen Rechner mit einem Python-Programm als Steuerung verwenden könnte. 
 + 
 +Zusätzlich (siehe Beispiel) kann der eingebaute Taster genutzt werden, um einfache Befehle direkt am mBot auszuführen. 
 +//
  
  
Zeile 40: Zeile 43:
 void loop() { void loop() {
   // step: command   // step: command
-  byte cmd = read(); // Funktion, die IR-Befehle einliest+  byte cmd = read(); // Funktion, die Steuer-Befehle einliest
  
   // step: state - Befehlsverarbeitungund ggf. Zustand wechseln   // step: state - Befehlsverarbeitungund ggf. Zustand wechseln
Zeile 76: Zeile 79:
 ===== Beispiel ===== ===== Beispiel =====
 <WRAP center round tip 90%> <WRAP center round tip 90%>
-Dieses Programm steuert eine RGB-LED mit einem Taster. Die LED wechselt bei jedem Tastendruck zyklisch zwischen drei Zuständen:+Der **mBot** soll in diesem Beispiel die Zustände der LEDs über einen Taster ändernBei jedem Tastendruck wechselt die LED zyklisch zwischen drei Zuständen: **aus**, <color #ed1c24>**rot**</color> und <color #22b14c>**grün**</color>. Die Steuerung erfolgt über eine einfache Zustandsmaschine (FSM), die den Tastereingang auswertet und entsprechend die LED-Farbe setzt.
  
-  * **STATE_OFF** → LED aus +  * **STATE_OFF** → LED **aus** 
-  * **STATE_RED** → LED rot +  * **STATE_RED** → <color #ed1c24>LED **rot**</color> 
-  * **STATE_GREEN** → LED grün+  * **STATE_GREEN** → <color #22b14c>LED **grün**</color>
 </WRAP> </WRAP>
  
Zeile 193: Zeile 196:
  
 === Erklärungen zum Quellcode === === Erklärungen zum Quellcode ===
-  
  
-==== Arduino Code ==== 
  
-=== Erklärungen zum Quellcode ===+  - Der Taster wird über ''analogRead(PIN_BUTTON)'' ausgelesen. 
 +  - Die Funktion'' isButtonPressed()'' erkennt den Tastendruck und verhindert mehrfaches Zählen (Entprellung). 
 +  - Die Funktion ''read()'' zählt die Tasterbetätigungen und wechselt durch die Zustände: 
 +          -  **OFF → RED → GREEN → OFF**. 
 +  - Die Funktion ''decode(cmd)'' wandelt den Zählerwert in einen **State** um. 
 +  - Die entsprechenden **LED-Funktionen** setzen die LED-Farbe je nach Zustand. 
 + 
 + 
 +Das Programm ermöglicht eine einfache Steuerung einer LED über einen Taster mit einer **Zustandsmaschine**.
  
-==== Bedienung des Programms==== 
  
  
hello_mbot_programmorganisation.1739877350.txt.gz · Zuletzt geändert: 2025/02/18 11:15 von torsten.roehl