GREETBoard – I2C LCD

GREETBoard-I2CLCD - Auf Display gesteckt

GREETBoard-I2CLCD – Auf Display gesteckt

Version 2

Dieses Zusatzmodul erweitert das GREETBoard Projekt um eine LCD-Anzeige ohne dabei wichtige Ports des GREETBoard ATMega128 zu belegen. Das Modul wird einfach an den I²C Bus angeschlossen. Die I²C Kommunikation und die LCD-Befehle werden über entsprechende Bibliotheken in die Programme eingebunden.

Diese Bibliotheken erweitern den Befehlsumfang des Mikrocontrollers um vorbereitete Funktionen. Daher ist es nicht nötig die I²C Kommunikation bis ins Detail zu verstehen um Texte auf dem Display anzeigen zu können. Natürlich steht der intensiven Beschäftigung mit dem I²C Protokoll mit diesem Modul nichts im Weg – auch das ist möglich.

Das GREETBoard – I²CLCD wird „kopfüber“ betrieben (siehe Bild). Die Buchsen werden zur Lötseite hin angebracht und von unten an das LCD Modul aufgesteckt. So zeigt die Bestückungsseite nach unten.

Schwierigkeitsgrad

GREETBoard - Port Expander - SchwierigkeitsgradDa nicht jeder ein Löt-Profil oder Programmier-Crack ist, versuche ich die Module in Schwierigkeitsgrade aufzuteilen. Damit kann sich jeder entsprechend seiner persönlichen Fähigkeiten an die  verschiedenen Module und Programme heranwagen.

Durch die Verwendung von Bibliotheken für die I²C-Kommunikation und LCD-Befehle ist die Programmierung recht einfach.

Eigenschaften

  • „Huckepack“-Betrieb für LCD-Module. Einfach das LCD Modul auf die Buchsenleisten stecken
  • Zwei LCD-Buchsenleisten für zwei unterschiedliche Ausführungen verschiedener LCD-Modulanschlüsse
  • Die Helligkeit ist über ein Potentiometer einstellbar
  • Es werden keine Ports am Mikrocontroller verwendet
  • Bus-Adresse auf dem Modul individuell einstellbar
  • Externe Spannungsversorgung über die Bus-Verbindung
  • Pull up Widerstände auf dem Modul per Jumper zuschaltbar
  • Ein bewährter PCF8574-Baustein stellt die I²C-Kommunikation sicher
  • Stapelbar, durch standardisierte Platinenbohrlöcher (gespiegelt ausgeführt, da Platine mit der Bestückungsseite nach unten betrieben wird)
  • Kleine Abmessung, ca. 50 x 40mm (1/8 Modul)

Modulübersicht

Primär soll das GREETBoard – I²CLCD Nachrichten über das angeschlossene LCD-Modul ausgeben. Für eine einwandfreie Funktion sind einige Einstellungen nötig. Die Übersicht zeigt die bereits die Anschlüsse und Einstellmöglichkeiten für die nächste Version auf. Dieser, alten Version fehlen die zuschaltbaren Pull up Widerstände.

GREETBoard-I2CLCD - Funktionsübersicht

GREETBoard-I2CLCD – Funktionsübersicht

Bestückungsplan

GREETBoard I2CLCD - Version 1.1 - Boardlayout

GREETBoard I2CLCD – Version 2 – Boardlayout

Stückliste

StückBauteilWert
1C1100nF
1IC1PCF8574
1R12,2k Ohm
1R233 Ohm
1R35k Ohm Potentiometer
2R4, R510k Ohm
1U1BC560
1X410-pol. Wannensteckerbuchse
6A0, A1, A2, X1, X2, X33-pol. Stiftleiste
2X5, X616-pol. Stiftleiste

Schaltplan

Schaltplan - GREETBoard - I2CLCD - Version 2

Schaltplan – GREETBoard – I2CLCD – Version 2

Erstes Programm

„Hallo Welt“ ausgeben

Natürlich muss die erste Ausgabe ein „Hallo Welt“ sein und genau das kann das folgende Programm bewerkstelligen.

#ifndef F_CPU
  #define F_CPU 16000000
#endif   

#include "i2cmaster.h"           // Einbinden der i2cmaster.h
#include "i2clcd.h"              // Einbinden der i2clcd.h

int main(void) {                 // Hauptprogramm
  lcd_init();                    // Starte I2CLCD
  lcd_command(LCD_CLEAR);        // Leere Display
  lcd_wait_ms(30);               // Warte 30ms
  lcd_printlc(1,1,"Hallo Welt"); // Ausgabe an 1.Zeile, 1. Stelle

  while(1){
    ...                          // Ab hier beginnt die Hauptschleife
  }
}

 Steckerbelegungen

Bez.BeschreibungPinBelegungSymbol
X1Interrupt Jumper1-2
2-3
Ein
Aus
X2LED Jumper1-2
2-3
Ein
Aus
X3Pull Up Jumper1-2
2-3
Ein
Aus
X4I²C Buchse1
2
3
4
5
6
7
8
9
10
SCL
GND
SDA
GND
VCC
GND
VCC
GND
12V
INT2
X5
X6
LCD Buchsen1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
VSS
VDD
V0
RS
R/W
E
-
-
-
-
DB4
DB5
DB6
DB7
A
K
A0
A1
A2
Adress-Jumper1-2
2-3
High
Low