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
  Bitte Hilfe für einen Anfänger beim Hochladen Harry Bo 6 347 23.07.2021 04:48
Letzter Beitrag: Harry Bo
  warum läuft der Timer 6min und nicht 5? Peff 27 1.811 19.06.2021 19:39
Letzter Beitrag: Tommy56
  MoBaTools: Buttons am MCP23017 und Timer Nordlicht 60 5.076 27.04.2021 10:38
Letzter Beitrag: Tommy56
  LEDs mit millis() statt mit delay() schalten Norman 11 1.374 17.04.2021 23:18
Letzter Beitrag: Franz54
Information Hilfe ich bin ein dummy! Arduino 433mhz + servo russruss87 14 1.374 15.04.2021 07:49
Letzter Beitrag: hotsystems
  Hilfe benötigt bei Programmierung LED Strip WS2812B 5 Volt Lockdog79 11 1.030 14.04.2021 15:53
Letzter Beitrag: Tommy56
  4 mal Blink ohne Delay Blende8 2 714 02.03.2021 18:36
Letzter Beitrag: Blende8
  Fehler durch zwei I2C Busse ? sgol 32 2.804 28.02.2021 18:11
Letzter Beitrag: Tommy56
  von delay auf millis umgestellt, klappt nur nicht. Servo Geschwindigkeit einstellen. gutschy 8 1.422 21.02.2021 15:22
Letzter Beitrag: gutschy
  Brauche Hilfe bei Arrays mega-hz 25 5.303 02.02.2021 16:57
Letzter Beitrag: Tommy56

Gehe zu:


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