LCD KeyPad Shield - AZ-Delivery

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
  }
}

 

DisplaysProduktvorstellungen

1 comment

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

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery