[![](https://gogs.es-lab.de/attachments/57e6f1ab-41d3-40c6-b539-56b25d29a62d)](https://www.hs-anhalt.de) # LCD-Shield [![](https://img.shields.io/badge/Version-1.6-a40000.svg?style=plain)](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield) [![]( https://img.shields.io/badge/License-GNU%20GPL%20v3-blue.svg?style=plain )](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield/src/master/LICENSE) [![](https://img.shields.io/badge/Arduino-UNO-00BFFF.svg?style=plain)](https://store.arduino.cc/usa/arduino-uno-rev3) [![](https://img.shields.io/badge/Arduino-IDE-01DF74.svg?style=plain)](https://www.arduino.cc/en/main/software) [![](https://img.shields.io/badge/Adobe-PDF-red.svg?style=plain)](https://get.adobe.com/de/reader/) [![](https://img.shields.io/badge/LC--Display-EA%20DOGS104-7401DF.svg?style=plain)](https://www.lcd-module.com/fileadmin/eng/pdf/doma/dogs104e.pdf) [![](https://img.shields.io/badge/LCD--Controler-SSD1803A-FF8000.svg?style=plain)](https://www.lcd-module.de/fileadmin/eng/pdf/zubehoer/ssd1803a_2_0.pdf) [![](https://img.shields.io/badge/Download-zip-yellow.svg?style=plain)](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield/archive/master.zip) ##
📜 Inhaltsverzeichnis
1. **[Das LCD-Shield](#Beschreibung)** * [Funktionen](#Funktionen) * [Stromlaufplan](#Stromlaufplan) * [Versionsunterschiede](#Versionsunterschiede) 2. **[LCD-Shield Bibliothek](#Bibo)** * [Installation](#Installation) * [Bespielprogramme](#Programme) * [Verwenden der Klasse](#LCDCLASS) * [Symbole](#Attribute) * [Objekte](#Objekte) * [Methoden](#Methoden) 3. **[Literaturverzeichnis](#Literaturverzeichnis)** >**Hinweis:** Wenn Sie dieses Repository downloaden möchten, können Sie es direkt als [ZIP](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield/archive/master.zip)-Datei herunterladen, oder mit Hilfe des Git-Repository-Links auf Ihren Rechner klonen. >**☁ Git-Repository-Link: [https://gogs.es-lab.de/HS-Anhalt/LCD-Shield](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield)
** --- ##📟 1. Das LCD-Shield
In diesem Repository finden Sie alle Informationen zum LCD-Shield (**L**iquid **C**rystal **D**isplay), welches Sie im Modul "Elektronikdesign" entwickeln. Des Weiteren finden Sie hier eine Bibliothek zum Einbinden in die Arduino IDE (**I**ntegrated **D**evelopment **E**nvironment), um das LC-Display in Betrieb zu nehmen. Die LCD-Shield Bibliothek kann ab der Version 5 verwendet werden. In den folgenden Abschnitten werden die Funktionen, der Stromlaufplan und die Versionsunterschiede des LCD-Shields erklärt. ### Funktionen Das LCD-Shield besitzt, neben dem LC-Display, Tasten und LEDs (**L**ight **E**mitting **D**iode), mit denen folgende Funktionen abgebildet werden können: * Über ein vier mal zehn Zeichen Display können Textnachrichten dargestellt werden. * Zur Displaynavigation oder zur Realisierung sonstiger Funktionen steht ein Tastenkreuz mit vier Tastern zur Verfügung. * Mithilfe zweier LEDs (rot und grün) können individuelle Signale dargestellt werden. * Die Displayhintergrundbeleuchtung lässt sich über Software, mithilfe der bereitgestellten [Bibliothek](#Bibo), separat ein- und ausschalten. ### Stromlaufplan Die folgende Abbildung zeigt den Stromlaufplan in der aktuellen Version. ![](https://gogs.es-lab.de/attachments/bf161f76-c754-4d70-b376-d60908830c8a) Das LC-Display **`A1`** mit der Bezeichnung **`LCD_EA_DOGS104`** besitzt vier Zeilen und kann pro Zeile zehn Zeichen darstellen. Über den Transistor **`Q1`** kann die Displayhintergrundbeleuchtung ein- und ausgeschaltet werden. Der IC (**I**ntegrated **C**ircuit) **`U1`** mit der Bezeichnung **`TXS0102`** ist ein bidirektionaler Pegelwandler für den I²C Bus (**I**nter-**I**ntegrated **C**ircuit). Dieser wird benötigt, da der Arduino mit 5 V arbeitet, aber das LC-Display nur mit maximal 3,3 V angesteuert werden kann. Vier Taster **`S1`** bis **`S4`** sind über Pull-Down Widerstände mit dem Arduino verbunden. Die Taster und die LEDs können individuell programmiert werden. > **Hinweis**: Sollten Sie Fragen zum Stromlaufplan haben, wenden Sie sich bitte an Herrn Prütting. ### Versionsunterschiede In der folgenden Tabelle werden die Versionsunterschiede des LCD-Shields ab Version 5 dargestellt. Dabei werden die Arduino Pins mit den verbundenen Bauelementen verglichen. | Pin | Version 5 | Version 6 | |:----:|:----:|:----:| | IO4 | S3 | - | | IO5 | S4 | S3 | | IO6 | D1 | S4 | | IO7 | D2 | D1 | | IO8 | Q1 | D2 | | IO9 | - | Q1 | Bei der Nutzung der LCD-Shield Bibliothek muss entsprechend darauf geachtet werden, welche Shield-Version verwendet wird. ##🗃 2. LCD-Shield Bibliothek
In den folgenden Abschnitten wird die LCD-Shield Bibliothek erklärt. Dabei wird auf die Installation, die Verwendung von Beispielprogrammen und die Nutzung der Klasse **`HSA_LCD_Shield`** eingeganen. > Sollten zusätzlich Fragen zur Verwendung der LCD-Shield Bibliothek auftauchen, wenden Sie sich bite an Herrn Müller. ### Installation Damit Sie diese Bibliothek in Ihrem Arduino-Sketch verwenden können, laden Sie als Erstes dieses Repository als [ZIP](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield/archive/master.zip)-Datei herunter. [![](https://gogs.es-lab.de/attachments/4c47b7c5-79d8-4013-9751-0eb8511d6109)](https://gogs.es-lab.de/HS-Anhalt/LCD-Shield/archive/master.zip) Im Anschluss wechseln Sie zur Arduino IDE und klicken in der Menüleiste auf `Sketch`, `Bibliothek einbinden`, `.ZIP-Bibliothek hinzufügen…`. ![](https://gogs.es-lab.de/attachments/60f0e804-793f-464a-bf4b-b73e10b2afcb) Es öffnet sich der Dateimanager, wo Sie die heruntergeladene Datei auswählen und öffnen. ![](https://gogs.es-lab.de/attachments/2c73ace6-9f58-4a21-88b8-edee4bfc299e) Nun Steht ihnen unter `Sketch`, `Bibliothek einbinden` die `HS-Anhalt LCD-Shield` Bibliothek zur Verfügung und kann in Ihrem Programm eingebunden werden. ![](https://gogs.es-lab.de/attachments/c65c3dbf-7475-465e-a19d-a1bf501e3c9b) ### Bespielprogramme Die Bibliothek beinhaltet Beispielprogramme zum Testen der Funktionalität des LCD-Shields. Des Weiteren dienen die Beispielprogramme zum besseren Verständnis der Klasse **`HSA_LCD_Shield`**. Die Beispielprogramme finden Sie unter `Datei`, `Beispiele`, `HS-Anhalt LCD-Shield`. Entsprechend Ihrer Version des LCD-Shields können Sie das passende Beispielprogramm auswählen. ![](https://gogs.es-lab.de/attachments/a86f5d30-cc4e-464f-b1d6-2df232af4793) Kontrollieren Sie unter `Werkzeuge` die Einstellungen: `Board` und `Port`. ![](https://gogs.es-lab.de/attachments/6c224f96-8d46-4741-b1e9-27f4a81b7115) Im Anschluss können Sie das Beispielprogramm auf Ihrem Arduino hochladen. Befolgen Sie die Anweisungen auf dem Display, um die LCD-Shield Funktionen zu testen. ![](https://gogs.es-lab.de/attachments/98eb47e2-abc5-442d-b48b-9460df335644) ### Verwenden der Klasse In den folgenden Abschnitten werden Symbole, Objekte und Methoden der Klasse **`HSA_LCD_Shield`** erklärt, damit diese im eigenen Programm verwendet werden können. Da die Attribute der Klasse geschützt sind und folglich nicht vom Anwender verändert werden können, werden diese hier nicht weiter aufgeführt oder erläutert. #### Symbole Symbole der Klasse **`HSA_LCD_Shield`** werden hauptsächlich zur besseren Lesbarkeit des Quellcodes und zur Parameterübergabe für Objekte und Methoden verwendet. In diesem Abschnitt werden alle wichtigen Symbole und deren Werte aufgelistet. * **Standard LC-Display I²C-Adresse** ```arduino I2C_ADDRESS 0x3C ``` * **LCD-Shield Versionen** ```arduino LCD_VERSION_5 0x05 LCD_VERSION_6 0x06 ``` * **LCD-Shield Konfigurationen** ```arduino CONFIG_L1B1 "L1B1" // Config: LEDs = On, Buttons = On CONFIG_L0B1 "L0B1" // Config: LEDs = Off, Buttons = On CONFIG_L1B0 "L1B0" // Config: LEDs = On, Buttons = Off CONFIG_L0B0 "L0B0" // Config: LEDs = Off, Buttons = Off ``` * **Taster** ```arduino BUTTON_UP 0x01 BUTTON_RIGHT 0x02 BUTTON_DOWN 0x03 BUTTON_LEFT 0x04 ``` * **LEDs** ```arduino LED_RED 0x05 LED_GREEN 0x06 ``` #### Objekte Damit Methoden einer Klasse verwendet werden können, muss zunächst ein Objekt der Klasse **`HSA_LCD_Shield`** erstellt werden. Dafür wird der sogenannte *[Konstruktor](#Konstruktor)* einer Klasse aufgerufen. Soll ein Objekt der Klasse wieder entfernt werden, wird der *[Destruktor](#Destruktor)* aufgerufen. Mit Erstellung eines Objektes werden anhand der übergebenen Parameter Attribute gesetzt, die das Verwenden bestimmter Methoden ermöglicht. Es wird empfohlen Objekte global zu erstellen. * **Konstruktor:** Definition: * Standard: ```arduino HSA_LCD_Shield📚 3. Literaturverzeichnis
**[1]** AtmelProf. Dr. Michael Brutscheck
📧 Michael.Brutscheck@HS-Anhalt.de
Dipl. Ing. Harald Prütting
📧 Harald.Pruetting@HS-Anhalt.de
Tobias Müller, M. Eng.
📧 Tobias.Mueller@HS-Anhalt.de
© HS-Anhalt.de, 26.11.2018