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
  Timer Sketch für OLED SSD1331 Talon 20 322 Gestern 10:48
Letzter Beitrag: Tommy56
  Neuling mit Progammierungslücken Ben2019 23 640 15.02.2019 17:16
Letzter Beitrag: Ben2019
  Hilfe bei Fehlermeldung Badboy89 9 261 13.02.2019 15:23
Letzter Beitrag: Tommy56
  Timer Richtig dastellen Harlekin 5 243 04.02.2019 12:54
Letzter Beitrag: Tommy56
  Timer auf einzelnen PIN setzen? ardufan01 16 733 21.01.2019 22:24
Letzter Beitrag: MicroBahner
  Kann auf A.Uno nichts hochladen - Anfänger sucht Hilfe ardeche 25 926 21.01.2019 22:06
Letzter Beitrag: ardeche
  Neuling sucht Hilfe HeikeF 6 397 16.01.2019 10:07
Letzter Beitrag: hotsystems
  IR-Remote - Case abbruch durch anderes case Snekels 5 217 03.01.2019 19:08
Letzter Beitrag: Tommy56
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 20 4.478 17.11.2018 18:25
Letzter Beitrag: Bitklopfer
  Projekt Portionierer mit Schrittmotor, Bluetooth hilfe Flieger 3 708 09.08.2018 13:02
Letzter Beitrag: Hilgi

Gehe zu:


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