Benutzer-Werkzeuge

Webseiten-Werkzeuge


hello_mbot_linesensor

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_linesensor [2025/02/03 15:14] torsten.roehlhello_mbot_linesensor [2025/02/19 12:32] (aktuell) – [Testen des Programms] torsten.roehl
Zeile 2: Zeile 2:
  
 //Dieses **Arduino-Programm** liest die Werte der Linienverfolgungssensoren am Port 2 des mBot aus und gibt den aktuellen Status über die serielle Schnittstelle aus. Es erkennt, ob sich die Sensoren auf einer schwarzen Linie (**IN**) oder außerhalb (**OUT**) befinden und aktualisiert die Werte alle 200 ms.// //Dieses **Arduino-Programm** liest die Werte der Linienverfolgungssensoren am Port 2 des mBot aus und gibt den aktuellen Status über die serielle Schnittstelle aus. Es erkennt, ob sich die Sensoren auf einer schwarzen Linie (**IN**) oder außerhalb (**OUT**) befinden und aktualisiert die Werte alle 200 ms.//
 +
 +
 +<WRAP center round tip 80%>
 +Der Liniensensor hat (<color #7092be>blaue</color>) LEDs, die signalisieren, ob er auf Schwarz oder Weiß steht. Dies ist sehr hilfreich für das Positionieren bzw. Debuggen.
 +</WRAP>
 +
 +==== Quellcode (engl. Sourcecode) ====
  
 <Code c linenums:1 | Listing 1:MinimalesProgramm.ino> <Code c linenums:1 | Listing 1:MinimalesProgramm.ino>
 #include <MeMCore.h> #include <MeMCore.h>
 +
 MeLineFollower lineFinder(PORT_2); MeLineFollower lineFinder(PORT_2);
 +
 void setup() { void setup() {
  Serial.begin(9600);  Serial.begin(9600);
 } }
 void loop() { void loop() {
- int sensorState = lineFinder.readSensors(); + int sensorState = lineFinder.readSensors(); 
- switch(sensorState) { + switch(sensorState) { 
- case S1_IN_S2_IN: Serial.println("S1_IN_S2_IN"); break; +   case S1_IN_S2_IN: 
- case S1_IN_S2_OUT: Serial.println("S1_IN_S2_OUT"); break; +      Serial.println("S1_IN_S2_IN");    break; 
- case S1_OUT_S2_IN: Serial.println("S1_OUT_S2_IN"); break; +   case S1_IN_S2_OUT: 
- case S1_OUT_S2_OUT: Serial.println("S1_OUT_S2_OUT"); break; +      Serial.println("S1_IN_S2_OUT");   break; 
- default: break; +   case S1_OUT_S2_IN: 
-+      Serial.println("S1_OUT_S2_IN");   break; 
- delay(200);+   case S1_OUT_S2_OUT: 
 +      Serial.println("S1_OUT_S2_OUT");  break; 
 +   default: break; 
 +  
 +  delay(200);
 } }
 </Code> </Code>
 +
 +==== Testen des Programms ====
 +  - **Programm hochladen**: Code auf den mBot übertragen.  
 +  - **Serial Monitor öffnen**: In der Arduino-IDE den **Serial Monitor** (Baudrate 9600) starten.  
 +  - **Testen**:  
 +    * Den mBot auf eine schwarze Linie stellen und die Ausgabe im Serial Monitor beobachten.  
 +    * Den mBot langsam über eine schwarze Linie auf weißem Untergrund bewegen und prüfen, ob sich die Statusmeldungen entsprechend ändern:  
 +      - **S1_IN_S2_IN** → Beide Sensoren auf Schwarz  (blaue LEDs aus)
 +      - **S1_IN_S2_OUT** → Linker Sensor auf Schwarz, rechter auf Weiß   (rechte LED <color #7092be>blau</color>)
 +      - **S1_OUT_S2_IN** → Rechter Sensor auf Schwarz, linker auf Weiß   (linke LED <color #7092be>blau</color>)
 +      - **S1_OUT_S2_OUT** → Beide Sensoren auf Weiß  (beide LEDs <color #7092be>blau</color>)
  
hello_mbot_linesensor.1738595672.txt.gz · Zuletzt geändert: 2025/02/03 15:14 von torsten.roehl