ich habe folgendes Problem: Ich würde gerne eine Stoppuhr auf einem LC-Display anzeigen lassen. Am besten so einfach wie möglich, ohne viel Schnick Schnack und am besten ohne eine Bibliothek zu verwenden.
Gibt es da eine Möglichkeit?
Im Grunde so etwas wie eine For-Schleife nur ohne einen festen Endwert, sondern dass man einfach einen Taster drückt wenn es zu Ende sein soll. Gibt es da eine Möglichkeit?
Vielen dank schon mal!
Because...you like to reinvent the wheel and would like to do more than you strictly need to? No...because that is contrary to your other requirements. The straightforward way that best suits your situation is really to use libraries where it helps, and one of those things would be controlling the necessary display.
Sure, it's not a very complicated project and a nice way to get started with Arduino!
Keine Bibliothek verwenden zu wollen und am Besten so einfach wie möglich sind zwei sich ausschliessende Anforderungen, wenn man eine Stoppuhr auf einem LC-Display anzeigen lassen will.
Nicht wegen der Programmierung einer Stoppuhr oder der Abfrage von Tasten ... dafür braucht es keine Bibliothek. Aber die Ausgabe auf einem LCD ist keine ganz so triviale Angelegenheit.
Gibt es da eine Möglichkeit?
Wenn eine Library zum Ansteuern eines LCD erlaubt ist, ist der Rest tatsächlich eher eine kleine Fingerübung.
Gibt es denn schon eine Idee
Welches Arduino -Board infrage kommt?
Welches LCD genutzt werden soll (Ansteuerung über I2C oder über Parallelinterface)?
Sehr viel wurde bereits dazu geschrieben.
Wenn deine Stoppuhr keine große Genauigkeit benötigt, kannst du es mit millis() machen.
Da musst du keine extra Library einbinden.
Die Anzeige machst du dann auf einem Nextion-Display, auch dafür brauchst du keine Library.
Das Display steuerst du über UART (Serial) und verwendest dazu die Hardware-Serial.
Je nach verwendetem Controller ist das allerdings mit Einschränkungen verbunden.
Eine extra Schleife musst du auch nicht einsetzen, da hast du ja schon die loop(), die du dafür nutzen kannst.
ein übliches HD44780 16x2 LCD anzusteuern ist nur eine Fingerübung, kann man mit DigitalWrite() problemlos erledigen. Im 4Bit-Mode sind es auch nicht soviele Pins um die man sich kümmern muß.
Ist grundsätzlich eine gute Programmierübung ohne allzuviele Fallen.
Ich habe mich tatsächlich sehr ungenau ausgedrückt...
Ich verwende einen Arduio Mega, und das HD44780 16x2 LCD mit dem I2C Modul.
Das ganze wird Teil eines größeren Projektes, und die Stoppuhr ist nur ein kleiner Teil davon. Sie soll mit einem Taster gestartet und mit dem selben Taster auch gestoppt werden. Während die Uhr läuft, soll die Zeit auf dem Display ausgegeben werden.
Ich möchte keine Library dafür verwenden, da ich alles selbst programmieren möchte. Außer natürlich die Library für das LCD, die habe ich verwendet.
Also ich möchte im Grunde nur auf einen Knopf drücken, dann zählt die Stoppuhr auf dem LCD hoch und beim erneuten drücken soll die Stoppuhr anhalten. Am besten sollte sie sekunden:millisekunden anzeigen können. Hat da jemand einen Rat? Stehe ein wenig auf dem Schlauch..
Bitte keine Rückfragen über den Sinn und Zweck davon.
du wirst etwas brauchen um den Taster zu debouncen.
Hast du dir die Beispiele in der IDE dazu schon angesehen?
Wenn du einen Taster auslesen kannst:
Bei Tasterdruck
in einem uint32_t startMillis die aktuellen millis() merken,
ein flag setzen dass die Uhr läuft
Bei zweitem Tasterdruck
in einem uint32_t endMillis die aktuellen millis() merken
differenz ausrechnen,
auf LCD ausgeben
flag wieder zurücksetzen
dazwischen kannst du einfach die angelaufene Zeit mit startMillis - millis() ermitteln und am LCD ausgeben. Mit dem flag weist du ob die Stoppuhr läuft.
Vielen dank für eure Hilfe. Hab das Programm welches @odometer dargestellt hat für mich angepasst und umgeschrieben und nun funktioniert alles und vorallem kann ich das alles auch nachvollziehen