LCD-Keypad Shield

Sonntag, 25. Januar 2015

Um Programme für den Arduino testen zu können und zu entwickeln, habe ich mir dieses LCD Keypad Shield bestellt.
Es wird einfach auf den Uno Rev 3 aufgesteckt. Leider gab es keine Belegung dazu. Doch nach etwas probieren konnte ich die Belegung herausfinden. Gewundert hat mich, daß alle Tasten nur an einen einzigen analogen Eingang angeschlossen sind.

Beschreibung:
Das Programm liest den Analogwert an Pin A0 ein und zeigt den Analogert in Zeile eins auf dem Display an. Wird eine der Tasten gedrückt ändert sich der Analogwert entsprechend und die gedrückte Taste wird in Zeile zwei angezeigt.

Belegung:
Pin A0: Taster
Pin 4-9: LCD-Display
Pin 10: LCD-Hintergrundbeleuchtung

Programm:
/*  I/O Shield.ino
 *
 *  Created on: 15.12.2014
 *  Last changed on: 16.12.2014
 *
 *  Autor: fk
 */

#include <LiquidCrystal.h>                // binde Bibliothek LiquidCrystal ein
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);       // initialisieren Bibliothek und Interface-Pins

#define Tast_All A0                            // Analog-Eingang

int Led = 10;                                        // Hintergrundbeleuchtung

int All  = 0;
int Up   = 0;
int Down = 0;
int Right= 0;
int Left = 0;
int Select=0;


void setup()
              {           
              pinMode(Led,OUTPUT);       // Pin10 als Ausgang setzen
              analogWrite(Led,40);              // Helligkeit der Hintergrundbeleuchtung setzen
              pinMode(Tast_All,INPUT);    // Pin0 als Eingang setzen             
              lcd.begin(16, 2);                      // LCD-Display initialisieren
              lcd.clear();                               // LCD löschen
              lcd.setCursor(0, 0);                 // Cursor an Pos setzen
              lcd.print("I/O Shield");           // schreiben
              lcd.setCursor(0, 1);                 // Cursor an Pos setzen
              lcd.print("Ver 1.0 by FK");     // schreiben
              delay(3000);                            // warte 3sec
              }

void loop()
              {
              delay(100);                                  // warte 0,1sec
              lcd.clear();                                   // Display löschen
              lcd.setCursor(0, 1);                     // Cursor an Pos setzen
              All = analogRead(Tast_All);       // Analogwert einlesen
              lcd.setCursor(0, 0);                      // Cursor an Pos setzen
              lcd.print(All);                               // Analogwert schreiben
              lcd.setCursor(0, 1);                      // Cursor an Pos setzen
              if (All == 0)                                 // Wenn Wert = 0
                {
                lcd.print("rechts");                    // schreiben
                }
              if (All >= 300 && All <= 312)  // Wenn Wert zwischen xx und yy
                {
                lcd.print("runter");                    // schreibe
                }
              if (All >= 124 && All <= 136)  // Wenn Wert zwischen xx und yy
                {
                lcd.print("hoch");                      // schreiben
                }
              if (All >= 474 && All <= 486)   // Wenn Wert zwischen xx und yy
                {
                lcd.print("links");                      // schreiben
                }
              if (All >= 714 && All <= 726)   // Wenn Wert zwischen xx und yy
                {
                lcd.print("Auswahl");                // schreiben
                }
              }

0 Kommentare:

Kommentar veröffentlichen