INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Neuling verzweifelt braucht Hilfe delay durch timer ersetzen
06.02.2019, 16:11 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2019 00:43 von Lois.)
Beitrag #1
Sad Neuling verzweifelt braucht Hilfe delay durch timer ersetzen
Hallo bin ein Neuling
möchte einen Servo ansteuern Taster x wird betätigt.
fährt auf 120° und nach einer bestimmten zeit x wieder in Grunstellung
und wartet auf den nächsten Tasten druck.
danke für Hilfe
Code:
#include <Servo.h>
const int Taster = 3;

Servo servo;
boolean toggle = true;

void setup()
{
pinMode(Taster, INPUT);
digitalWrite(3, HIGH);
servo.attach(9);
servo.write(10);

}

boolean Grundstellung=true;
void loop()
{if ((!digitalRead(Taster))&&(Grundstellung))
      {
        servo.write(120);
       Grundstellung=false;
       }
    else if (!Grundstellung)
       {
         delay(3000); soll durch timer ersetzt werden
         servo.write(0);
         Grundstellung=true;  
if(toggle)
{
}
else
{
servo.write(0);
toggle = !toggle;  
}

}
}

könnte das ein Lösungsansatz sein

Code:
#include <Servo.h>  //Bibliothek zum ansteuern von Servo

Servo servo; //Servo Objekt erstellen (noch nicht initialisiert)
int taster = 3;
int press = 0;
int position = 0; //Variable zum speichern von der aktuellen Position
const int waitTime = 25; //Zeit zum pausieren zwischen den einzelnen Schritten des Servos

void setup()
{ pinMode(taster, INPUT);
  digitalWrite(3, HIGH);  
  servo.attach(9); //setzen des Servo Objektes auf den digitalen PIN 9
}

void loop()
{
    press = digitalRead(taster);
if (press == LOW)
  //For Schleife zum drehen des Servos um 180°
  for(position = 1; position < 120; position++) {
    servo.write(position); //Schreiben des aktuellen Wertes der Variable 'position' (1...180)
    delay(waitTime); //Pause
  }

  //For Schleife zum drehen des Servos um 180°  
  for(position = 0; position>=0; position--){
    servo.write(position); //Schreiben des aktuellen Wertes der Variable 'position' (180...1)
    delay(waitTime); //Pause
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.02.2019, 16:15
Beitrag #2
RE: delay durch timer ersetzen
Stelle Deinen Sketch bitte in Codetags.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Wie Du millis() verwendest, siehst Du in BlinkWithoutDelay().

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Brauche Hilfe bei Arrays mega-hz 23 692 10.07.2019 15:59
Letzter Beitrag: MartinZ
  Hilfe benötigt bei der folgenden Aufgabe hanneswave 10 358 01.07.2019 18:08
Letzter Beitrag: Wochenendprogrammierer
  Millis benutzen statt delay beame 9 591 21.06.2019 16:16
Letzter Beitrag: Franz54
  delay Zeit falsch golex 9 789 24.05.2019 21:18
Letzter Beitrag: GuaAck
  Oled 0.91 wechselnde Anzeige . Benötige hilfe MotD 6 677 24.03.2019 22:48
Letzter Beitrag: Bitklopfer
  Simon Says bzw. Senso - Spiel bitte Hilfe Riddle 3 548 15.03.2019 13:46
Letzter Beitrag: Tommy56
  Hilfe benötigt beim Verknüpfen von Klassen Batucada 7 635 02.03.2019 23:47
Letzter Beitrag: georg01
  Hilfe bei Formulierung der Frage Matt 3 635 23.02.2019 12:45
Letzter Beitrag: Tommy56
  Neuling mit Progammierungslücken Ben2019 29 1.813 22.02.2019 15:15
Letzter Beitrag: Hilgi
  Timer Sketch für OLED SSD1331 Talon 20 1.190 17.02.2019 10:48
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste