faecher:nwt:arduino:arbeitsauftraege:linienfolger:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
faecher:nwt:arduino:arbeitsauftraege:linienfolger:start [19.10.2022 21:42] prh22fuchsfaecher:nwt:arduino:arbeitsauftraege:linienfolger:start [20.10.2022 11:12] (aktuell) sbel
Zeile 1: Zeile 1:
-{{ :faecher:nwt:arduino:arbeitsauftraege:linienfolger:ausweichen_schwarze_linie.ino |}}====== Linienfolger ======+====== Arbeitsauftrag: Linienfolger ======
  
 ===== Funktionsweise des Linienfolgers ===== ===== Funktionsweise des Linienfolgers =====
Zeile 27: Zeile 27:
 Hier findest du einen Beispielcode. Diesen kannst du als Vorlage nutzen und ihn weiter optimieren (z.B. die Dauer des nach links fahren), beachte aber dass du den Messwert des Liniensensors von deinem Sensor verwenden musst. Vergleiche auch unbedingt deine Hardware mit den Pins im Beispielcode. Hier findest du einen Beispielcode. Diesen kannst du als Vorlage nutzen und ihn weiter optimieren (z.B. die Dauer des nach links fahren), beachte aber dass du den Messwert des Liniensensors von deinem Sensor verwenden musst. Vergleiche auch unbedingt deine Hardware mit den Pins im Beispielcode.
  
-Beispielcode+{{ :faecher:nwt:arduino:arbeitsauftraege:linienfolger:ausweichen_liniensensor.ino |}}  
 + 
 +<code c lf.ino> 
 +int empfaenger = A0; // Variablen deklarieren 
 +int messwert = 0; 
 + 
 +//Motor links 
 +int M_l = 3; 
 + 
 +//Motor rechts 
 +int M_r = 5; 
 + 
 +// Funktionen deklarieren 
 +void vorwaerts(); 
 +void links_fahren(); 
 +void rechts_fahren(); 
 +void messen(); 
 + 
 + 
 + 
 +void setup() { 
 +  Serial.begin (9600); 
 +  pinMode(M_l, OUTPUT); 
 +  pinMode(M_r, OUTPUT);   
 + 
 +
 +void loop() { 
 +    vorwaerts(); 
 +    messen(); 
 +   
 +  if (messwert>520){    //Wenn der Liniensensor höhere Werte als 250 misst, befindet sich das Fahrzeug über der Linie 
 +    links_fahren(); 
 +  } 
 +  else if (messwert<520){ //Außerhalb der Linie werden Messwerte unterhalb 250 gemessen  
 +    rechts_fahren(); 
 +  } 
 +
 + 
 +void vorwaerts(){ 
 +  analogWrite (M_l,250); 
 +  analogWrite (M_r,250); 
 +
 + 
 +void links_fahren (){ 
 +  analogWrite (M_l,250); 
 +  analogWrite (M_r,0); 
 +  delay (100); 
 +
 + 
 +void rechts_fahren (){ 
 +  analogWrite (M_l,0); 
 +  analogWrite (M_r,250); 
 +  delay (100); 
 +
 + 
 +void messen(){ 
 +  messwert = analogRead (empfaenger);   //Der gemessene Reflexionswert wird in der Variable messwert zwischengespeichert 
 +  Serial.print ("Reflexionswert = "); 
 +  Serial.print (messwert); 
 +  Serial.println(); 
 +  delay(500); 
 +
 +</code>
  
 ++++ ++++
 +
 +===== Arbeitsauftrag 2 =====
 +Schreibe ein Programm, mit dem dein Fahrzeug einer schwarzen Linie folgen kann. Wird die schwarzen Linie vom Fahrzeug verlassen, soll durch eine Links- bzw. Rechtskurve das Fahrzeug wieder auf Kurs gebracht werden. 
  • faecher/nwt/arduino/arbeitsauftraege/linienfolger/start.1666208567.txt.gz
  • Zuletzt geändert: 19.10.2022 21:42
  • von prh22fuchs