Katze1.jpgKatze1b.jpgKatze2.jpgKatze2b.jpgKatze3.jpgKatze3b.jpgKatze4.jpgKatze4b.jpg

Displays

DFRobot LCD Shield

Hardware

Zur Benutzerkommunikation kann ein DFRobot LCD Keypad Shield eingesetzt werden. Es wird über einige Ports des Arduino angesteuert (4Bit parallel). Das HTML-Handbuch (Englisch) ist hier zu finden, es gibt ausserdem einen Schaltplan.

LCD Shield

 

 

Das LCD Shield bietet fünf Steuertasten: Up, Down, Left, Right und Select. Der Taster ganz rechts ist der Resettaster für den Arduino. Die fünf Bedientasten werden über einen einzigen Analogeingang abgefragt (Spannungsteilerschaltung), um Ports zu sparen. Die Hintergrundbeleuchtung ist mit Pin 10 verbunden und kann durch das Sketch geschaltet werden.

UNO mit LCD Shield

 

Das LCD-Shield wird auf dem Arduino aufgesteckt und bildet eine kompakte Einheit. Auf dem Shield sind Lötaugen für nicht verwendete Ports vorhanden. Man kann dort Stift-/Buchsenleisten einsetzen und damit auch über das Shield Verbindungen zu Sensoren herstellen.

Damit man das Shield hinter einer Frontplatt einbauen und die Tasten bedienen kann, müssten Taster mit langen Stiften verwendet werden. Das kann man auch selbst umrüsten, bei Reichelt gibt es die passenden Taster mit verschiedenen Stiftlängen.

Zusätzliche Buchsenleiste

 

 

 

 

Die nicht vom LCD verwendeten Ports sind auf eine Lochreihe parallel zu den Stiftleisten herausgeführt. Hier wird eine nach unten weisende 7-polige Buchsenleiste eingelötet, die später für Breadboardverbindungen dient.

Zusätzliche Buchsenleiste

 

 

 

Bei den Versorgungsspannungen und den Analogeingängen werden ebenfalls Zusatzbuchsen eingelötet (1x5-polig, 1x 6-polig).

Shield auf UNO aufgesteckt

 

 

 

Ganz links erkennt man die neu eingelöteten Buchsenleisten.

Verkabelung Buchsenleisten

 

 

Mit fertigen Verbindungskabeln können die Verbindungen von den zusätzlichen Buchsenleisten zum Breadboard hergestellt werden. Ist etwas fummelig, manchmal braucht man eine Pinzette, aber da die Buchsenleisten nach unten zeigen, kann man später den Deckel des Hutschienengehäuses über dem LCD-Shield schliessen.

Das LCD Shield kann für etwa 14,50 € (inkl. Porto) über Ebay (Suchbegriff: Arduino LCD Shield) direkt aus China bezogen werden. Der Bestückungsplan des Shields:

Bestückungsplan LCD Shield

Folgende Signale werden vom Shield verwendet:

Arduino Pin LCD-Pin
Analog 0 Taste (Up, Down, Left, Right, Select)

Digital 4

DB 4
Digital 5 DB 5
Digital 6 DB 6
Digital 7 DB 7
Digital 8 RS (Command or Data)
Digital 9 Enable
Digital 10 Hintergrundbeleuchtung

Das LCD hat das Standard-Character Set des HD44780-Controllers:

Character Set

Die rot markierten Positionen sind im Gegensatz zum seriellen Display von Sparkfun bei diesem Shield verfügbar. Beim normalen LCD-Display können eigene Character (siehe 1. Spalte in oben stehender Tabelle) definiert werden. Diese Website bietet einen Codegenerator für das gewünschte Zeichen an.

Library

Es wird die Standard-Lib LiquidCrystal verwendet (in IDE 0022 enthalten).

 

Sketch

Sketch für Darstellung des LCD-Zeichensatzes:

LCD Ausgabe Character Map

#include <LiquidCrystal.h>

/***************************************************************************** 
 * Sketch:  LCD_CharSet.pde
 * Author:  Andreas Kriwanek
 * Version: 1.00 05.04.2011/09:35
 *
 * Hardware:
 * Arduino UNO
 * DFRobot LCD Keypad Shield
 *
 * This sketch generates a character map of th LCD shield. Every value from
 * 0x00 - 0xFF will be sent to the display. The correspomding character is
 * shown in line 2 of the display.
 *
 *****************************************************************************/

// select the pins used on the LCD panel:
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
char LCDChar[2]="";

void setup()
{
  lcd.begin(16, 2);              // 16x2 LCD panel
  lcd.setCursor(0,0);
  lcd.print("LCD KeyPadShield");
  lcd.setCursor(0,1);
  lcd.print("<Character Set>");
  delay(2000);
}

void loop()
{
  lcd.clear();
  for(int i=0; i<=255; i++){
    lcd.setCursor(0,0);
    lcd.print("Value=");
    sprintf(LCDChar, "0x%02X", i);
    lcd.print(LCDChar);
    lcd.setCursor(0,1);
    lcd.print("Character:");
    lcd.print(char(i));
    delay(2000);  
  }
}
© 2012 Familie Kriwanek
Joomla templates by a4joomla