Heute möchten wir Ihnen unser praktisches LCD-Shield mit Keypad vorstellen. In unserem Beispiel haben wir eine kleine, einfache Stop-Uhr gebaut. Uns gefällt dieses Shield deshalb so gut, weil man ohne Hardwarekenntnissen sofort losprogrammieren kann, so lassen sich Menüstrukturen o.ä. in Minuten erstellen - ohne Taster, Wiederstände oder Breadboards.
Stückliste:
LCD Keypad Shield
AZ-Delivery UnoR3
Code:
// die benötigten Libarys #include <SPI.h> #include <LiquidCrystal.h> LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); // LCD-Pins für unser Shield unsigned long start, finished, elapsed; // Globale Variablen void setup() { lcd.begin(16, 2); // Start LCD lcd.print(" -= Arduino =-"); lcd.setCursor(0,1); // set cursor lcd.print(" -= StopUhr =- "); delay(5000); // wait 5 seconds lcd.clear(); // clear the display lcd.print("LFT - Start/Rst"); lcd.setCursor(0,1); lcd.print("SEL - Elap. time"); } void displayResult() { // Lokale Variablen float h, m, s, ms; unsigned long over; // die Formel elapsed = finished - start; h = int(elapsed / 3600000); over = elapsed % 3600000; m = int(over / 60000); over = over % 60000; s = int(over / 1000); ms = over % 1000; lcd.setCursor(0,0); lcd.print("Vergangene Zeit:"); // Struktur für Ergebnis lcd.setCursor(0,1); lcd.print(h, 0); lcd.print("h "); lcd.print(m, 0); lcd.print("m "); lcd.print(s, 0); lcd.print("s "); lcd.print(ms, 0); lcd.print("ms"); } void loop() { int x; // variable x = analogRead (0); // assign 'x' AnalogueInput (Shield's buttons) if (x < 600 && x > 400) // if button is LEFT { start = millis(); // Startzeit delay(200); // debounce lcd.clear(); lcd.print("gestartet..."); } else if (x < 800 && x > 600) // SELECT Button { finished = millis(); // zum Vergleich delay(200); // debounce lcd.clear(); displayResult(); // gibt Ergebnis aus } }
1 Kommentar
Hardy
Tolle Sache! Wie müsste der Code aussehen wenn,
ich immer die laufende Zeit incl. Hunderstel sehen möchte und 4 Zeiten angezeigt werden sollen:
1.Startzeit (die komplett durchläuft)
2. Zwischenzeit 1
3.Zwischenzeit 2
4.Endzeit
Ich würde gern 4 Lichtschrankensignale zum Auslösen an A0,A1,A2,A3 nutzen. (später sollen die drahtlos übertragen werden…)
Würde mich riesig über den Code freuen!!!
VG Hardy