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
  Taster nur 1xmal zählen Flötzinger 3 579 05.05.2019 11:49
Letzter Beitrag: Flötzinger
  Motor mit Taster Vollgaser 3 714 14.03.2019 18:02
Letzter Beitrag: Bitklopfer
  Codehilfe 1 Taster 2 Relais freaktech 8 862 20.02.2019 22:00
Letzter Beitrag: freaktech
  Zeitmessung HansP 2 1.047 08.02.2019 15:08
Letzter Beitrag: HansP
  Taster Abfrage Manuel 1 619 13.01.2019 10:50
Letzter Beitrag: Tommy56
  2 taster gleichzeitig drücken Rasa 6 1.036 02.01.2019 16:55
Letzter Beitrag: Rasa
  Led bei gedrückt gehaltenen Button nur 2 Sekunden leuchten lassen kiefer_dev 5 684 29.12.2018 14:36
Letzter Beitrag: Tommy56
  RGB LED Lauflicht per Taster unterbrechen AC_DC_new 28 3.418 05.08.2018 19:16
Letzter Beitrag: AC_DC_new
Big Grin Brauche dringend Hilfe mit dem Programmieren von Servo und Taster holzchistli 4 1.716 19.06.2018 16:45
Letzter Beitrag: hotsystems
  Taster schalten LEDs mit Schieberegister Sonne 3 1.633 26.03.2018 20:08
Letzter Beitrag: hotsystems

Gehe zu:


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