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
}
}
Abonnieren
Kommentare zum Post (Atom)
0 Kommentare:
Kommentar veröffentlichen