Verfahren zwischen 2 Endschaltern


hallo miteinander,

leider komme ich gerade nicht weiter und wollte fragen ob mir jemand helfen könnte.

bei meinem versuchsaufbau steuere ich über das arduino motor shield einen wagen mit gleichstrommotor an. auf der linken bzw. rechten seite des aufbaus befindet sich jeweils 1 endschalter (magnetschalter).

zu meinen problem:
ist der rechte endschalter (magnetstatus1) erreicht, soll sich der wagen wieder nach links bewegen und das solange, bis der linke endschalter (magnetstatus2) erreicht ist.
die abfrage, dass wenn der rechte endschalter erreicht ist und der wagen
dann nach links fahren soll habe ich gelöst:

code: [select]

   if(magnetstatus1 == 0) // && keine drehung der kurbel
  {
   serial.println("--> wagen hat endposition erreicht!");
   serial.println("");
   serial.println("start bremsung\n");
   // pin für bremse auf 'high' setzen, somit stopt der motor schneller
   digitalwrite(bremse_a, high);  // aktivieren der bremse
   delay(1000);   
 
   serial.println("wagen bewegt sich nach links zur anfangsposition:");
   digitalwrite(bremse_a, low);    // pin für bremse auf 'low' setztn, deaktiviert die motorbremse erneut
   digitalwrite(richtung_a, low);  // pin für die drehrichtung des motors auf 'high' setzen --> wagen fährt nach links
 
   analogwrite(pwm_a, 255);        // geschwindigkeit des motors setzen
   w = 0; // hier null setzten, da andere if-funktion somit nicht nacheinander ausgeführt wurde.

  }


wie schaffe ich es jetzt, dass dieser code solange ausgeführt wird, bis der linke endschalter (magnetstatus2) erreicht ist???


danke für eure hilfe.

wenn ich dich richtig verstehe, fährt er entweder nach links oder nach rechts ( oder macht eine kurze pause ende ).

also musst du dir nur die aktuelle richtung merken, und wenn ein endschalter ansteht, in die richtige richtung losfahren.

dabei evtl. bedenken, dass bei ordentlicher programmierung die hauptaufgabe von loop darin besteht, nichts zu tun (weil sich nichts geändert hat). loop wird dadurch unheimlich schnell, und kann innerhalb weniger µs auf einen zustandswechsel deiner endschalter reagieren.


Arduino Forum > International > Deutsch (Moderator: uwefed) > Verfahren zwischen 2 Endschaltern


arduino

Comments