LCD KeyPad Shield

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

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

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert