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
  Mehrere Taster/Schalter entprellen und verwalten MicroBahner 15 734 18.02.2020 15:36
Letzter Beitrag: MicroBahner
  Arduino Taster - Welcher Fehler? lil.chem 4 199 10.02.2020 22:39
Letzter Beitrag: Franz54
  Ein Taster mit verschiedenen Funktionen? kama92 21 1.144 14.01.2020 22:40
Letzter Beitrag: kama92
  Taster Keyboard Rauchi 6 299 14.01.2020 13:22
Letzter Beitrag: hotsystems
  Mit einen Taster zwischen zwei Ausgängen Toggeln luft-post 6 287 13.01.2020 17:41
Letzter Beitrag: hotsystems
  Taster machen was sie wollen. StefanBehmenburg 12 698 23.11.2019 16:40
Letzter Beitrag: hotsystems
  Rotary Encoder - gedrückt und gleichzeitig drehen Gerdchen03 6 477 29.10.2019 10:49
Letzter Beitrag: Tommy56
  Taster nur 1xmal zählen Flötzinger 3 811 05.05.2019 11:49
Letzter Beitrag: Flötzinger
  Motor mit Taster Vollgaser 3 941 14.03.2019 18:02
Letzter Beitrag: Bitklopfer
  Codehilfe 1 Taster 2 Relais freaktech 8 1.139 20.02.2019 22:00
Letzter Beitrag: freaktech

Gehe zu:


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