Display direkt am Controller-Board anschließen
Man kann ein LCD-Display direkt am Controller-Board anschließen, ohne dass man viel
Elektronik dazwischen schalten muss. Das funktioniert sehr einfach auf dem Gold-Board,
weil dort die Ausgänge auf Steckerleisten leicht erreichbar sind. Diese Bastelei
funktioniert aber auch genauso gut auf dem Bobby-Board – dort muss man nur
mehr Stecker verwenden, damit man alle 4 Digital-Ports anschließen kann.
Und man muss aufpassen, dass man die 4 Stecker nicht vertauscht.
Ich gehe davon aus, dass das Display mit einem Controller
HD44780
von Renesas (ehemals Hitachi Semiconductor) ausgestattet ist. Dafür habe ich
den Verdrahtungsplan und die Software angepasst. Wenn das bei eurem Display nicht
der Fall ist, müsst ihr die Hard- und Software entsprechend verändern.
Hardware:
Es werden ein paar Leitungen zweckentfremdet, die bisher für andere Zwecke
zur Verfügung gestanden haben:
-
Die Download-Buchse
Um ehrlich zu sein: Sie wird auch ohne meine Bastelei schon zweckentfremdet.
Bisher werden auf diesen Leitungen die Leuchtdioden des Gold-Boards geschaltet.
-
Die digitalen Eingänge Di0..Di3
Ich verwende sie jetzt als Ausgänge für die Daten zur LCD-Anzeige.
Einkaufsliste für Gold-Board:
- Stiftleiste RM 2.54 mm, 16 Pins
- Buchsenleiste RM 2.54 mm, 2 Pins + 4 Pins
- Micromatch-Stecker 6 polig Schneid-Klemm
- Flachbandkabel 12polig (10polig ohne Hintergrundbeleuchtung)
- 4 Widerstände 100 Ohm (zur Beruhigung)
Einkaufsliste für Bobby-Board:
- Stiftleiste RM 2.54 mm, 16 Pins
- 2 original QFIX Sensor-Anschlusskabel
- Micromatch-Stecker 6 polig Schneid-Klemm
- Flachbandkabel 12polig (10polig ohne Hintergrundbeleuchtung)
- 4 Widerstände 100 Ohm (zur Beruhigung)
Verdrahtungsplan:
|
Kabel Pin
|
ATMega32 Port
|
Gold-Board Anschluss
|
Display
|
Pin
|
Signal
|
1
|
PB3
|
Di3
|
14
|
D7
|
2
|
PB2
|
Di2
|
13
|
D6
|
3
|
PB1
|
Di1
|
12
|
D5
|
4
|
PB0
|
Di0
|
11
|
D4
|
|
|
|
10
|
D3
|
|
|
|
9
|
D2
|
|
|
|
8
|
D1
|
|
|
|
7
|
D0
|
5
|
PB6
|
MISO
|
6
|
EN
|
6
|
Vcc
|
+5 V
|
2
|
Vdd
|
7
|
PB7
|
SCK
|
5
|
R/W
|
8
|
PB5
|
MOSI
|
4
|
RS
|
10
|
GND
|
0 V
|
3
|
Vee
|
1
|
Vss
|
11
|
GND
|
0 V
|
16
|
LED -
|
12
|
PD7
|
Power 7
|
15
|
LED +
|
|
|
Die Anschlusspins für die Hintergrundbeleuchtung (LED + / LED -) sind
bei jedem Display-Typ an einer anderen Stelle – bitte
überprüft im Datenblatt eures Displays, wo exakt die
Anschlüsse liegen.
Außerdem ist die Betriebsspannung der Hintergrundbeleuchtung oft
verschieden! Einige LED-Beleuchtungsmodule arbeiten mit 4 V, andere mit 5 V.
Beleuchtungsmodule mit CCFL-Leuchtfolien verlangen einen Inverter, der etwa
90 - 110 V Spannung liefert.
In meinem Display ist eine LED-Hintergrundbeleuchtung eingebaut, die mit
4 V arbeitet. Ich hänge an den geschalteten 5 V Ausgang des Gold-Boards
eine Silizium-Diode (z.B. 1N4007) und eine Schottky-Diode (z.B. SB130) in
Reihe, das ergibt einen Spannungsabfall von ziemlich genau 1 V.
Ich habe in die Datenleitungen zur Sicherheit Serienwiderstände
eingebaut – damit nichts kaputt geht, wenn ich mal beim Umschalten
vom Schreib- zum Lesebetrieb einen Software-Fehler mache.
Auf den Fotos seht ihr, dass ich die frei liegenden Datenleitungen D0..D3
des LCD-Displays mit je 10 kOhm auf +5V gezogen habe. Das ist eigentlich
unnötig, weil der HD44780 dasselbe schon intern tut.
Die LCD-Kontrastspannung Vee soll normalerweise über ein Potentiometer
eingestellt werden. Ich habe sie fest auf Masse (GND = 0 V) gelegt, weil
im Kabel kein Platz für ein Potentiometer war. Und außerdem
wird der Kontrast sowieso meistens auf den Maximalwert eingestellt, dann
ist Vee tatsächlich 0 V.
|
|
Display angeschlossen
|
Display in Betrieb
|
Das Gold-Board hat an der Download-Buchse keine Bohrung für den Codierpin
des Download-Steckers.
Man kann entweder den Plastikpin am Stecker abkneifen oder vorsichtig
das "D" des Bestückungsdrucks "Download" auf
dem Gold-Board mit 2,5 mm durchbohren.
Dabei werden keine Leiterbahnen beschädigt.
Software:
Weil die oben genannten Leitungen für das LCD-Display genutzt werden,
könnt ihr in euren Programmen folgende Funktionen nicht mehr verwenden:
- led();
- ledOn();
- ledOff();
- ledsOff();
- ledMeter();
- ledLow4Bit();
- ledHigh4Bit();
- digital();
Die nötigen Programme:
Name |
Verwendung |
Bemerkungen |
Gold-LCD.h |
Bibliothek-Header |
Zugriffsfunktionen für LCD-Display |
Gold-LCD.cc |
Bibliothek-Funktionen |
Zugriffsfunktionen für LCD-Display |
Gold-LCD_Test1.cc |
Zugriffsfunktionen |
Einfaches Testprogramm zur Funktionsprüfung |
Gold-Pong.cc |
Testprogramm |
Kleine Spielerei: Einfaches Tennis-Spiel im Stil des Klassikers "Pong"
Benötigt Linear-Potis als Game-Controller an den Analog-Ports
|
... und dann?
Wenn alles klappt, kann man Gold-Board + Display für ein kleines Spiel einsetzen.
Die Software dazu habt ihr schon oben in der Tabelle gesehen.
Wir bauen uns noch schnell zwei kleine Game-Controller aus einem
Linear-Potentiometer + einem Taster ...
... hängen einen kleinen Lautsprecher ans Gold-Board ...
... und schon kann es losgehen!
|
E-mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!