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
Dauer des Tastendrucks erkennen - wie?
07.12.2015, 15:35
Beitrag #9
RE: Dauer des Tastendrucks erkennen - wie?
In der Funktion loop() von "Gelegenheitsbastler" fehlt eine Klammer-zu:

Code:
void loop()
{
  unsigned long currentMillis = millis();
  int reading = digitalRead(buttonPin);

    if (reading == HIGH){
      
  if(currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    
      ledState = HIGH;



  }
}

Viele Grüße
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.12.2015, 16:17
Beitrag #10
RE: Dauer des Tastendrucks erkennen - wie?
(07.12.2015 15:35)torsten_156 schrieb:  In der Funktion loop() von "Gelegenheitsbastler" fehlt eine Klammer-zu:

Du solltest dir die gesamte "Loop" ansehen, dann wirst du erkennen, es fehlt keine Klammer. Wink

Code:
void loop() {
unsigned long currentMillis = millis();
int reading = digitalRead(buttonPin);

  if (reading == HIGH) {
    if (currentMillis - previousMillis >= interval) {
      previousMillis = currentMillis;
      ledState = HIGH;
    }
  }
  if (ledState == HIGH) {
    digitalWrite(ledPin, HIGH);
  }
}

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.12.2015, 21:30
Beitrag #11
RE: Dauer des Tastendrucks erkennen - wie?
Ups, dass kommt davon wenn man mal auf die Schnelle seinen Senf dazugeben möchteBlush
Sorry Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 17:30
Beitrag #12
RE: Dauer des Tastendrucks erkennen - wie?
Naja ein paar Probleme müssen dann schon gelöst werden, bevor das sauber spielt.

1. Tastenprellen: entweder mit der debounce lib oder auch per kurzem delay().

2.Dann die Taste nicht nur abfragen, sondern den Startzeitpunkt festhalten.
(Positive Flankenerkennung)
3.Dann die ganze Zeit im Loop vergleichen, wieviel Zeit abgelaufen ist und per IF festlegen, was passieren soll.

#1
Mach Dich mit dem Problem erstmal vertraut
Bau Dir einen Loop, der erstmal nur jede Änderung des Tasterport mit einem Serial.Println("Click"); auf den Monitor wirft.
#2
Bool Var TasterAlt mit dem Portzustand vom Taster unten im Loop belegen.
Oben im Loop ein
If (TasterAlt<>Digital.Read(Taster))
{
// wird nur aufgerufen, wenn Status gewechselt wurde
}

#3
Innerhalb von der o.g. If Abfrage eine weitere IF
Wenn Taster gedrückt
{ Zeiten vergleichen und entsprechend handeln}

Kann sein ich hab noch n Denkfehler, aber in dieser Form würd ich erstmal anfangen.


Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Telefon-Nummer erkennen - Schaltung auslösen harryba 4 250 13.10.2016 10:12
Letzter Beitrag: hotsystems
  SoftwareSerial Baudrate automatisch korrekt erkennen - geht das? Gelegenheitsbastler 5 528 21.04.2016 12:32
Letzter Beitrag: SkobyMobil
  Objekt mehrfach erkennen Zerebrator 1 441 02.08.2014 12:25
Letzter Beitrag: Bitklopfer
  Automatisches Erkennen verschiedener USB-Eingabegeräte DbAd 7 2.459 30.10.2013 17:33
Letzter Beitrag: rkuehle

Gehe zu:


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