Midi LCD Part 1

Ich habe mein Projekt „LCD mit einem Arduino UNO“ in drei Teile aufgeteilt. Part 1 ist der Anschluss und die Programmierung des LCD. Part 2 der Anschluss/Programmierung der MIDI IN Buchse. Part 3 die Ergänzung mit einem DIP Schalter für die Auswahl des LCD (0-127) aus Hauptwerk (HW) oder GrandOrgue (GO). Beide (HW & GO) können jeweils 128 LCD ansteuern.

Los geht’s: Zunächst habe ich mir ein Arduino Starter Kit gekauft, da dort bereits ein LCD (Liquid Crystal Display), sowie fast alle weiteren benötigten Teile enthalten sind. Für Part 2 benötigen wir später noch eine MIDI IN Buchse (MAB 5100 S DIN-Rundsteckbuchse) und für Part 3 einen DIP Schalter mit 6 oder 8 PIN.

Zunächst stecken wir das Display in das Breadboard (Steckbrett) ein und verbinden die einzelnen der 16 PINs gemäß der folgenden Skizze. Die Skizze (Klicken für größer) ist übrigens mit der kostenlosen Fritzing Software erstellt. Wer sich die Verkabelung gerne per Video anschauen möchte: https://www.youtube.com/watch?v=_E8jC0D4-as (Deutsch) oder https://www.youtube.com/watch?v=dZZynJLmTn8 (Englisch). Für den Anschluss des Poti (Potentiometer) gilt noch die kleine Extra-Tabelle (der regelt den Kontrast der Schrift auf dem LCD).

Das Ergebnis (Klicken für größer) sollte dann wie folgt aussehen:

Nun kann der Arduino per USB an den PC angeschlossen werden. Sobald dies geschehen ist, sollte das LCD bereits aufleuchten und sich der Kontrast mit dem Poti regeln lassen. Dann muss man sich noch die entsprechende Arduino IDE Software herunterladen und installieren. Nachdem man die Software installiert und gestartet hat, klickt man auf „Datei/Beispiele/LiquidCrystal/Hello World“ und es  öffnet sich das Beispielprogramm für das LCD. Der Arduino wird in C programmiert, daher ein paar kleine Programm Erläuterungen:

Natürlich könnten wir jetzt alles für das LCD von null auf selber programmieren, aber das ist nicht Sinn dieses Projektes. Daher nutzen wir eine vorgefertigte Programm Bibliothek (LiquidCrystal.h), in der bereits viele Hilfsfunktionen (und das LCD Objekt) enthalten sind. Diese helfen uns, von unserem eigenen Programm einfach auf das Display zugreifen zu können.

Daher als erstes die Zeile, die uns die Bibliothek in unser Programm mit einbindet (include) und zur Verfügung stellt.

// include the library code:
#include <LiquidCrystal.h>

Als Nächstes müsste man ein wenig über objektorientierte Programmierung sprechen. Das spare ich mir aber, stellt euch einfach vor ihr könntet das LCD im Programm als ein Objekt zum anfassen erstellen und könntet anschließend dieses Objekt Dinge fragen (wie hell bist du gerade?), daran Eigenschaften festlegen (LCD, du hast 2 Reihen mit je 16 Buchstaben) und Aufgaben geben (LCD, schreibe mal bitte ein „A“ in die erste Zeile).

Also brauchen wir als nächstes im Programm so ein LCD Objekt. Damit das Programm übersichtlich bleibt, versehen wir vorher einzelne Zahlen (die wir benötigen) noch mit einem sprechenden Namen.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

Also die Zahl 12 zum Beispiel heißt ab sofort rs in unserem Programm.

Mit der nächsten Zeile erstellen wir uns dann ein LCD Objekt. Bei der Erstellung geben wir direkt ein paar Eigenschaften mit, damit das LCD Objekt weiß, wie wir es an den Arduino angeschlossen haben.

LiquidCrystal mylcd(rs, en, d4, d5, d6, d7);

Damit hätten wir ein LCD mit Namen „mylcd“ in der Hand bzw. Programm und können damit beginnen unser LCD Dinge tun zu lassen.

Ein Arduino Programm (sketch) hat dazu immer zwei Funktionen. Die Setup Funktion, die beim Einschalten des Stroms einmalig ausgeführt wird und die Loop Funktion. Die Loop Funktion startet direkt nach der Setup Funktion. Wenn die Loop Funktion ihr Ende erreicht hat beginnt sie einfach wieder von vorn… wieder bis zum Ende und wieder von vorn…

In der Setup Funktion sagen wir unserem mylcd Objekt zunächst, das es jetzt losgeht und zwar mit 16 Zeichen in 2 Reihen.

mylcd.begin(16, 2);

Anschließend können wir unserem mylcd sagen, es soll mal bitte „hello, world“ anzeigen.

// Print a message to the LCD.
mylcd.print("hello, world!");

Das war es auch schon. Dazu, wie man das Programm jetzt per USB auf den Arduino bekommt, gibt es viele Webseiten und YouTube Videos. Daher brauche ich das hier nicht näher zu erklären.

Ich würde sagen macht das erstmal bis hierhin und lernt euer LCD Objekt besser kennen. In Part 2 (der bald folgt), werden wir unser Breadboard (Steckbrett) um die MIDI IN Schnittstelle erweitern. Die Verkabelung ist viel einfacher und wir lernen dann den Optokoppler kennen.

Wenn ihr Fragen habt, oder ich etwas näher erläutern soll schreibt es in die Kommentare.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.