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
Zeitmessung - Taster gedrückt
08.08.2019, 13:43 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2019 14:29 von Bitklopfer.)
Beitrag #1
Zeitmessung - Taster gedrückt
Hallo zusammen !

Ich versuche seit geraumer Zeit eine Zeitmessung zu realisieren bei der gemessen wird wie lange eine Taste gedrückt wurde. Das Ergebnis lasse ich mir auf einem 16x2 Display anzeigen.

Derzeit ist es so das ca 6ms am Display angezeigt werden egal wie lange ich den Taster gedrückt halte.

Leider bin ich noch immer ein blutiger Anfänger und ich komme hier nicht weiter.
Kann mir jemand weiterhelfen?



Hier der Code den ich verwende:

Code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
unsigned long start, finished, elapsed;
void setup()
{
lcd.begin(16, 2);

lcd.clear();
lcd.setCursor(0,0);
lcd.print("Stoppuhr");
lcd.setCursor(0,1);
lcd.print("TEST2");
delay(2000);


lcd.clear();
lcd.setCursor(0,0);
lcd.print("(1)START/RESTART");

pinMode(7, INPUT); //Starttaste
}
void displayResult(){
  int s, ms;
unsigned long over;
elapsed = finished - start;
over = elapsed % 3600000;
over = over % 60000;
s = int(over / 1000);
ms = over % 1000;
lcd.print(s);
lcd.print("s ");
lcd.print(ms);
lcd.print("ms");
}
void loop(){
while (digitalRead(7) == HIGH)
{
start = millis();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ergebniss:");
lcd.setCursor(0,1);
finished = millis();
delay(200);
displayResult();
}
}
Danke
LG
DEL

Hier noch der Schaltplan!

LG
DEL

...und immer an die Code Tags denken... das geht über # oben im Editormenü.
lgbk


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.08.2019, 14:13
Beitrag #2
RE: Zeitmessung - Taster gedrückt
Du hast ein Problem mit dem Prellen des Tasters.

Wenn Du wirklich Zeiten unter 10 ms messen willst, dann solltest Du die Hardwareentprellung mit Wechselschalter und RS-FlipFlop wählen.
Wenn Deine Zeiten > 10 ms sind, kannst Du softwareseitig entprellen. Schau Dir dazu das Beispiel Debounce aus den Beispielen der IDE an.
Dazu müssen aber alle Delay aus dem Loop raus.
Du brauchst auch keine while-Schleife, denn loop ist Deine Schleife. Die darfst Du nur nicht blockieren.

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
08.08.2019, 14:59
Beitrag #3
RE: Zeitmessung - Taster gedrückt
Hallo Tommy,

Danke für deine rasche Antwort!

Ich denke für mich wäre es am einfachsten wenn ich mit der Kondensator Schaltung entprelle.
Anbei der neue Schaltplan. Ist das so richtig ? Oder habe ich was falsch verstanden...

Danke
LG
DEL


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.08.2019, 15:16
Beitrag #4
RE: Zeitmessung - Taster gedrückt
Das hängt von der kleinsten Messdauer ab, die Du noch nicht beantwortet hast.

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
08.08.2019, 16:54
Beitrag #5
RE: Zeitmessung - Taster gedrückt
(08.08.2019 15:16)Tommy56 schrieb:  Das hängt von der kleinsten Messdauer ab, die Du noch nicht beantwortet hast.

Gruß Tommy

Die kleinste Messdauer kann schon mal unter 10ms sein...

LG
DEL
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.08.2019, 17:01 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2019 17:03 von Bitklopfer.)
Beitrag #6
RE: Zeitmessung - Taster gedrückt
(08.08.2019 14:59)DEL schrieb:  Hallo Tommy,

Danke für deine rasche Antwort!

Ich denke für mich wäre es am einfachsten wenn ich mit der Kondensator Schaltung entprelle.
Anbei der neue Schaltplan. Ist das so richtig ? Oder habe ich was falsch verstanden...

Danke
LG
DEL

...wohl falsch verstanden.
Deine Lösung ist ne Umgehung des Flip-Flops... aber es könnte auch funktionieren....nur der 20nF Kondensator dürfte zu klein sein... interessant wird das im Bereich von 220nF bis 470nF - Test it.
lgbk

(08.08.2019 16:54)DEL schrieb:  
(08.08.2019 15:16)Tommy56 schrieb:  Das hängt von der kleinsten Messdauer ab, die Du noch nicht beantwortet hast.

Gruß Tommy

Die kleinste Messdauer kann schon mal unter 10ms sein...

LG
DEL

10ms mit dem Finger....soso... also dann brauchst die Schaltung mit dem Flip-Flop sonst ist der Fehler durch das RC-Glied zu groß.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.08.2019, 17:03
Beitrag #7
RE: Zeitmessung - Taster gedrückt
(08.08.2019 16:54)DEL schrieb:  Die kleinste Messdauer kann schon mal unter 10ms sein...

Dann würde ich Dir eher zur FlipFlop-Schaltung raten. Wobei Du mit einem handbetätigten Schalter nie kontrolliert unter 10 ms kommen wirst.

Soll die Länge eines Tastendrucks oder der Abstand zwischen 2 Tastendrücken gemessen werden?

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
08.08.2019, 17:17 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2019 17:26 von DEL.)
Beitrag #8
RE: Zeitmessung - Taster gedrückt
Ist die FlipFlop Schaltung genauer oder wieso würdest du eher zu dieser raten?

Es soll die länge des Tastendrucks gemessen werden, wobei irgendwann der Taster gegen 2 Schütz Kontakte ausgetauscht wird - Ist sozusagen mal mein erster Testaufbau... Die Messzeiten variieren recht stark!

LG
DEL


(08.08.2019 17:01)Bitklopfer schrieb:  ...wohl falsch verstanden.
Deine Lösung ist ne Umgehung des Flip-Flops... aber es könnte auch funktionieren....nur der 20nF Kondensator dürfte zu klein sein... interessant wird das im Bereich von 220nF bis 470nF - Test it.
lgbk


Erst jetzt gesehen - Danke !
Ich teste morgen - muss mir noch die Kondensatoren besorgen.
Bin jedoch nicht happy mit der "falschen" lösung... wie wäre es richtig ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Betätigung d. Sensors soll Steuerung abschalten und nur über Taster einschalten Floydi 12 629 26.04.2020 07:47
Letzter Beitrag: MicroBahner
  Funk Fernbedienung Taster Abfrage kurz oder lange gedrückt Michi_exe 15 609 16.04.2020 17:19
Letzter Beitrag: Tommy56
  Stepper Motor mit zwei Taster bedienen / Fehler ohne Fehlermeldung Milano 6 500 21.03.2020 16:06
Letzter Beitrag: MicroBahner
Question "Bobbycar LED" - 2 Fragen (Mehrere Taster: Unterprog. Abbrechen / Einfacher "Code" ?) KlausGuenther 13 1.002 19.03.2020 14:09
Letzter Beitrag: Tommy56
  E293D Motor Shield mit Taster bedienen Milano 17 947 16.03.2020 20:34
Letzter Beitrag: Milano
  Stepper Steuerung mit Taster und Endschalter Milano 10 973 27.02.2020 14:34
Letzter Beitrag: hotsystems
  Mehrere Taster/Schalter entprellen und verwalten MicroBahner 17 1.832 23.02.2020 17:38
Letzter Beitrag: MicroBahner
  Arduino Taster - Welcher Fehler? lil.chem 4 544 10.02.2020 22:39
Letzter Beitrag: Franz54
  Ein Taster mit verschiedenen Funktionen? kama92 21 1.761 14.01.2020 22:40
Letzter Beitrag: kama92
  Taster Keyboard Rauchi 6 687 14.01.2020 13:22
Letzter Beitrag: hotsystems

Gehe zu:


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