http://sites.schaltungen.at/arduino-uno-r3/grafik-display-1Wels, am 2016-06-12BITTE nützen Sie doch rechts OBEN das Suchfeld [ ] [ Diese Site durchsuchen]DIN A3 oder DIN A4 quer ausdrucken ********************************************************************************** DIN A4 ausdrucken *********************************************************
Untergeordnete Seiten (4):
Um diese Seiten praktisch nutzen zu können brauchen Sie unbedingt den FRANZIS MARKER KIT Grafikdisplays programmieren auf 88 Seiten 1 Grafik-Display 300_d_FRANZIS-x_Grafikdisplays programieren - 1 Grafik-Display_1a.pdf (16 Seiten) 2 Display-Grundlagen 300_d_FRANZIS-x_Grafikdisplays programieren - 2 Display-Grundlagen_1a.pdf (11 Seiten) 3 TextDisplay 300_d_FRANZIS-x_Grafikdisplays programieren - 3 TextDisplay_1a.pdf (12 Seiten) 4 GrafikDisplay 300_d_FRANZIS-x_Grafikdisplays programieren - 4 GrafikDisplay_1a.pdf (37 Seiten) 5 Projekte 300_d_FRANZIS-x_Grafikdisplays programieren - 5 Projekte_1a.pdf (12 Seiten)
Alles von www.schaltungen.at downloadbar.
2016-05-10
Das Franzis Maker Kit "Grafikdisplays programmieren" geht in die 2. Auflage. Die Tage ist ein Muster bei mir angekommen. Viel geändert hat sich nicht. Die Hardware kommt nun mit stylisch schwarzen Tasten daher. Zudem wurde bei den Abbildungen der einzelnen Anwendungen nachgebessert. Grafikdisplays programmieren
In Zusammenarbeit mit Fabian Kainka und Franzis ist aus einer gemeinsamen Affinität zu kleine stromsparenden Displays FRANZIS Maker Kit - Grafikdisplays programmieren 49,95 € Shield vorhandenein spannendes Lernpaket rund um das Thema Displayprogrammierung im Umfeld von Mikrocontrollern und Embedded Systems entstanden. Hier findest Du Anregungen und Tipps und natürlich frische Ideen für neue Projekte. Zum Grafikdisplay soll es demnächst auch etwas bei Conrad Electronic geben. http://tiny.systems/categorie/lcdProjekt/ 20 praxisnahe Projekte, von der grundlegenden Ansteuerung eines Displays bis zu grafischen Anzeigen einer SmartHome Steuerung.
Autor:
Tomas Baum TINY Systems
Espenstraße 135 D-66346 Püttlingen mailto:[email protected] Tel. +49 (0)6898 / 964296 http://tiny.systems/ http://tiny.systems/categorie/lcdProjekt/ http://tiny.systems/categorie/lcdProjekt/ProportionaleFonts.html http://tiny.systems/categorie/lcdProjekt/Zahlensysteme.html http://tiny.systems/categorie/lcdProjekt/Lauflicht.html http://tiny.systems/categorie/lcdProjekt/Adventskalender.html http://tiny.systems/categorie/lcdProjekt/Grayscale.html http://tiny.systems/categorie/lcdProjekt/Seismograph.html http://tiny.systems/categorie/lcdProjekt/BonsaiWatchdog.html http://tiny.systems/categorie/lcdProjekt/HallOfFame.html Mosaic: Online Bitmap2Hex Konverterhttp://tiny.systems/article/mosaic.htmlhttp://tiny.systems/software/lcdProjekt/DXDCG12864-4330.pdf
Mitautor:
Fabian Kainka
http://fkainka.de/grafikdisplays-programmieren/ LCD-Shield mit einem 12864 LCD (128x64 Pixel, ST7565) Graphical (128x64) monochrome LCD with LED backlight Möchte man den Bildinhalt eines 128*64 Pixel großen monochromen LCD füllen sind bereits 1024 Bytes nötig (1024 * 8 == 128 * 64). Kommt dann noch Farbe ins Spiel multipliziert sich der Speicherplatz durch die Farbtiefe. Mit einer 8-bit Farbtiefe sind das bei gleicher Auflösung bereits 8kB Bilddaten. http://www.franzis.de/elektronik/lernpakete-mikrocontroller/franzis-maker-kit-grafikdisplays-programmieren# ISBN: 978-3-645-65278-0 http://www.franzis.de/franzis/div/book/index.jsp Damit Sie die Zip-Datei zum BUCH herunterzuladen können müssen Sie die ISBN-Nummer des Buches eintippen. 65278-0 65278-0 Franzis Maker Kit Grafikdisplays programmieren Der komplette Quellcode des Maker Kits zum Nachpropgrammieren und erweitern.
ORDNER > Grafik-Display 300_d_FRANZIS-x_65278-0 Shield Grafikdisplays programmieren - Beispiel-Programme_1a.zip Seite Sketch-Name 014 AnalogInput.ino 069 analogWatch.ino 059 analysis.ino 032 ASCII.ino 082 calendar.ino 028 CharSet.ino 048 constellation.ino 100 flappyBirdClone.ino 076 geometrie.ino 085 HardwarePlayground.ino 010 HelloWorld.ino 010 HelloWorldDIY.ino 038 Metering.ino 092 navigation.ino 056 nikolaus.ino 050 scope.ino 036 SerialTextDisplay.ino 061 smartHome.ino 008 Starter.ino 097 turtleGraphics.ino 079 vuMeter.ino background.bmp flappy.bmp flappyRIP.bmp home.bmp watch.bmp Display.cpp TextDisplay.cpp Time.cpp Turtle.cpp background.h Bitmap.h Display.h Flappy.h Font.h Home.h TextDisplay.h Time.h Turtle.h watch.h
041 lib
ARDUINO UNO R3 Sketche.ino
Handbuch-Inhaltsverzeichnis Seite
Inhaltsverzeichnis 5 1 Einführung 6 1.1 Display installieren 6 1.2 Die Beispiele downloaden 7 1.3 Starter.ino - das erste Beispiel 8 2 Display - Grundlagen 10 2.1 HelloWorld.ino - das erste eigene Programm 10 2.1 HelloWorldDIY.ino 2.2 AnalogInput.ino - Messergebnisse am Display anzeigen 14 2.3 Blick in die Library 1 18 3 Textdisplay 28 3.1 CharSet.ino - der erste Schritt zum Textdisplay 28 3.2 ASCII.ino - der komplette Zeichensatz 32 3.3 SerialTextDisplay.ino - Textausgabe und PuTTY 36 3.4 Metering.ino - Messdaten ausgeben 38 3.5 Blick in die Library II lib - die Klasse Textdisplay 41 4 Grafikdisplay 48 4.1 constellation.ino - wie Sterne am Himmel 48 4.2 scope.ino - ein einfaches Oszilloskop 50 4.3 Blick in die Library III - die Grundlagen des Grafikdisplays 53 4.4 nikolaus.ino - ich mal das Haus vom Nikolaus 56 4.5 analysis.ino - Matheunterricht mit Arduino 59 4.6 smartHome.ino - Hausautomatisierung auf dem Display 61 4.7 Blick in die Library IV - Linien, Texte und Bilder 66 4.8 analogWatch.ino - Digitaluhr mit Ziffernblatt 69 4.9 geometrie.ino - auf zu neuen Formen 76 4.10 vuMeter.ino - der klassische Austeuerungsmesser 79 4.11 calendar.ino - analoge Uhr mit erweiterten Funktionen 82 4.12 HardwarePlayground.ino - die Hardware voll im Griff 85 4.13 navigation.ino - ein Menü mit reichlich Auswahl 92 4.14 Blick in die Library V - die Library ist komplett 94 4.15 turtleGraphics.ino - der kleine Zeichenroboter 97 4.16 floppyBirdClone.ino - Spielspaß zum Abschluss 100 5 Befehlsliste 104 5.1 API Grafikdisplay 104 5.2 API Textdisplay 105 Grafik-Display DXDCG12864-4330 128x64 Dots LCD-Shield mit einem 12864 LCD (128x64 Pixel, ST7565)
8x21 Zeichen
Nach Abwägen aller Vor- und Nachteile sollte es dann ein monochromes 12864 mit einem internen ST7565r Displaycontroller sein. In Kombination mit einem Arduino könnte man damit viel machen. Damit stand dann auch das Zielsystem fest. Es sollte ein Lernpaket für Arduino werden. Für den Schaltungsentwurf ergab sich dabei eine besondere Anforderung. Der Arduino läuft mit 5V. Alle verfügbaren Displays vertragen jedoch maximal 3,6 V. Ein Pegelwandler musste her. Displaycontrollers ST7565r (Seriell 3,3V) http://www.ladyada.net/learn/lcd/st7565.html Ähnlich ist LCD-Grafik-Modul KSB0108B-LSC 128 x 64 Pixel mit KS0108B (Paralell 5,0V)kompatiblen Schnittstelle (0..127 x 0..63) 8 Zeilen mit je 20 Zeichen BUCH: Arduino Workshop Seite 170
Schaltungsentwurf für das LCD Shield
Beim Entwurf wurde darauf geachtet, dass nur der obere Teil der Anschlüsse des Arduinos Verwendung finden. Es sollten noch genug IO-Ports für eigene Zwecke übrig bleiben. Diese Anforderung konnte gut umgestetzt werden. Es waren sogar noch 2 Ports für zusätzliche Taster frei. http://tiny.systems/categorie/lcdProjekt/MakingOf.html
Platine 53x46mm Ansicht Bestückungsseite
Platine 53x46mm Ansicht Leiterbahn-Seite (ACHTUNG: IC & Taster Gehäusekontur macht Kurzschlüsse)
Grafikdisplays selbst programmieren € 49,95 + € 8,00 Versandkosten Inklusive fertiges Grafik-Shield für Arduino UNO R3
FRANZIS Artikel-Nr.: 978-3-645-65278-0 Inkl. Fertiges Grafik-Shield für Arduino Franzis Maker Kit - Grafikdisplays programmieren Lernpaket sofort lieferbar *versandkostenfrei ISBN: 978-3-645-65278-0 vorhanden
Mit den ersten Tests entstanden schnell ein paar brauchbare Testprogramme für das Display.
Zu diesem Zeitpunkt gab es noch keinerlei Konzept für die Didaktik des Lernpakets. Wichtig war vorerst was der Anwender generell mit einem 12864er LCD alles anstellen kann und welche Anwendungsfälle wir zeigen wollten. 20 praxisnahe Anwendungen sollten es schon sein. Und das war ist Ergebnis (unterteilt in verschiedenen Anwendungstechniken):
Hardwarenahe Kommunikation und Verwendung
• Starter - Das erste Beispiel (Kontrasteinstellung)
• HelloWorld - Das erste eigene Programm (Daten zum Display übertragen)
• AnalogInput - Messergebnisse am Display anzeigen (Messdaten als Balkenanzeige)
Verwendung als Textdisplay
• CharSet - Der erste Schritt zum Textdisplay (Eigenen Zeichensatze entwickeln)
• ASCII - Der komplette Zeichensatz (Textausgabe und Formatierung)
• SerialTextDisplay - Textausgabe und PuTTY (Ein serielles Display)
• Metering- Messdaten ausgeben (Datenaufbereitung auf einem Textdisplay)
Verwendung als Grafikdisplay
• Constellation - Wie Sterne am Himmel (Einführung Videoram und einzelnde Pixel setzen)
• Scope - Ein einfaches Oszilloskop (Messdatennormierung und Darstellung)
• Nikolaus - Das Haus vom Nikolaus (Linienalgorithmus)
• Analysis - Matheunterricht mit Arduino (Funktionen zeichnen)
• SmartHome - Hausautomatisierung auf dem Display (Grafiken und Animationen)
• AnalogWatch - Digitaluhr mit Ziffernblatt (Displaykoordinaten und die Mathematik)
• Geometrie - Auf zu neuen Formen (Kreise und andere geometrische Figuren)
• VUMeter - Der klassische Aussteuerungsmesser (Messdaten und grafische Aufbereitung)
• Calendar - Analoge Uhr mit erweiterten Funktionen (Externe Programmbibliotheken)
• HardwarePlayground - Die Hardware voll im Griff (Was kann der Displaycontroller)
• Navigation - Ein Menü mit reichlich Auswahl (einfaches UserInterface)
• TurtleGraphics - Der kleine Zeichenroboter (Displayprogrammierung mal anders)
• Flappy Bird - Spielspaß zum Abschluss (LCD-Spieleprogrammierung)
Damit waren die wichtigesten Anwendungsfälle für ein monochromes grafisches Display abgedeckt. Projekte im Franzis Maker Kit - Grafikdisplays programmieren:
Grafikdisplays programmieren In 20 Projekten lernen Sie alles, was Sie zur Programmierung des Grafikdisplays benötigen, ob einfache Textausgabe oder komplexe Visualisierungen. Das Maker Kit bietet die Erklärung der notwendigen Theorie und für die, die es verstehen wollen: die Funktionsweise des Displays.
Exklusiv für alle Buch-Käufer: Der komplette Quellcod aus dem Maker Kit zum sofortigen Einsatz, stehen Ihnen nach dem Kauf des Buches kostenlos auf www.buch.cd zur Verfügung.
5. BEFEHLSLISTE
5.1 API Grafikdisplay 128 x64 dots
API-Funktion Parameter Erklärung init byte contrast (0-63] Initialisierung des Displays mit übergebendem Kontrastwert (Hardware SPI], Hintergrundbeleuchtung nicht schaltbar, maximale Übertragungsgeschwindigkeit initSoftSPl byte contrast (0-63) Initialisierung des Displays mit übergebenden-Kontrastwert (Software SPI), Hintergrundbeleuchtung [Pin 12] schaltbar writeCommand byte command Führt ein ST7565-Kommando aus writeData byte data Überträgt das angegebene Byte auf das Display resetRamAddress - Setzt den RAMzeiger auf Zeile 0 Spalte 0 setPageAddress byte pageAddress (0-7) Setzt den RAMzeiger in die angegebene Zeile setColumnAddress byte columnAddress [0-127] Setzt den RAMzeiger in die angegebene Spalte clearDisplayRAM - Löscht den gesamten Inhalt des Displays clearVideoBuffer - Löscht den gesamten Inhalt des Videopuffers drawPixel byte x, byte y [x-, y-Position] Zeichnet einen Punkt an die gegebene Position [Änderungen beziehen sich auf den Videopuffer] drawLine byte xl, byte yl [Punkt 1) byte x2, byte y2 [Punkt 2] Zeichnet eine Linie zwischen den beiden Punkten (xl, yl] und (x2, y2] (Änderungen beziehen sich auf den Videopuffer] drawString byte x, byte y [x-, y-Position], Zeichenkette Zeichnet eine Zeichenkette an eine beliebige Position (x, y] [Änderungen beziehen sich auf den Videopuffer] drawBitmap byte x, byte y, byte width, byte height, const byte bitmap[] Zeichnet eine Bitmap an Position x, y mit der Länge (width) und der Breite (height) (Änderungen beziehen sich auf den Videopuffer] drawEllipse byte x, byte y, byte a, byte b Zeichnet eine Ellipse/einen Kreis an Position [x,y] mit dem Radius [a, b] (Änderungen beziehen sich auf den Videopuffer) invertRectangle byte xl, byte yl, byte x2, byte y2 Invertiert die Anzeige in dem angegebenen Rechteck mit der Diagonalen (xl, yl], (x2, y2] (Änderungen beziehen sich auf den Videopuffer) Show - Überträgt den Inhalt des Videopuffers auf das Display
Seite 104
5.2 API Textdisplay 22x 8 Zeichen API-Funktion Parameter Erklärung init byte contrast [0-63] Initialisierung des Displays mit übergebendem Kontrastwert (Hardware SPI], Hintergrundbeleuchtung nicht schaltbar, maximale Übertragungsgeschwindigkeit println Zeichenkette Gibt eine Zeichenkette in der aktuellen Zeile aus [mit anschließendem Zeilenumbruch] print Zeichenkette Gibt eine Zeichenkette in der aktuellen Zeile aus clear - Löscht den internen Textpuffer und setzt die aktuelle Position auf Anfang getLastCharPosition byte line [0-7] Ermittelt die Position des letzten Zeichens in einer angegebenen Zeile writeTextBuffer - Stellt den Inhalt des Textpuffers auf dem Display dar Seite 105 *********************************************************
ARDUINO-Extensions
*.ino = ARDUINO-Sketch / ARDUINO-Datei
*.cpp = CPP-Datei (Sourcer-File) ARDUINO\libraries = Bibliothek
*.h = H-Datei ARDUINO\libraries = Bibliothek
*.bmp = BMP-Datei
*.pde = Quellcode C-File vom IDE-Editor
Wenn Du eine eigene Library (.h und .c) im Sketch-Verzeichnis liegen hast musst Du sie mit
Die ARDUINO-Plattform installieren.
Hardware = Arduino-Board = ARDUINO UNO R3 ein kleines Mikrocontroller-Board mit Mikroprozessor Atmel ATmega328p (DIL-28)
Software = Arduino-IDE 1.6.4 (Sketche)
arduino-1.0.5-r2-windows.exe
http://www.arduino.cc/en/Main/Software
Treiber für das ARDUINO UNO Board
C:\Programme (x86)\Arduino\drivers\ArduinoUNO\arduino.inf
Board mit USB Verbindungskabel mit PC verbinden.
Rechner > Geräte-Manager (Datei-Manager / Device Manager) > Anschlüsse (COM & LPT) > Arduino Uno (COM5)
MENU > Datei > Voreinstellungen > Sketchbook-Speicherort: C:\User\fritz\Documents\Arduino
MENU > Werkzeuge > Platine: "Arduino Uno"
MENU > Werkzeuge > Port: "COM5 (Arduino Uno)" MENU > Datei > Sketchbook > DisplayBeispiele > Blink.ino Die eingebaute LED (an pin-13 = LED-Anode-lang) zum blinken bringen
Hackerl = Verifizieren Pfeil = Hochladen
Nur um zu testen ob alles geht ! ! !
Dann erst weiter zu Punkt 1 EINFÜHRUNG
1. EINFÜHRUNG 1.1 Display installieren Für die Beispiele im Buch benötigen Sie ein Arduino-Board und die Arduino-Entwicklungsumgebung. Alle Beispiele wurden auf einen Arduino Uno ausgelegt, da er am weitesten verbreitet ist, und mit der Arduino-Version 1.6 programmiert. Es ist allerdings wahrscheinlich, dass die Beispiele mit vergleichbaren Controllern oder Arduino-Versionen kompatibel sind. Wenn Controller und Software auf Ihrem PC funktionieren, können Sie das Displayshield auf das Board stecken. Achten Sie zuerst auf die richtige Position des Jumpers JP1 auf der Unterseite des Display-Shields. Überbrücken Sie, wie in der Darstellung gezeigt, den rechten und den mittleren Kontakt. Mit dieser Einstellung ist die Hintergrundbeleuchtung des Displays aktiviert. Abb 1.1 Das Shield mit gesetztem Jumper Abb 1.1 Das Shield mit gesetztem Jumper Beachten Sie, dass Sie beim Aufstecken des Displays auf Ihren Arduino die richtigen Pins erwischen.
Seite 6
Das Shield sollte so orientiert sein, dass die Taster vom USB-Anschluss weg zeigen. Außerdem sollte die komplette rechte Seite des Shields in die obere rechte Buchsenleiste des Unos gesteckt sein. Bei der oberen linken Buchsenleiste werden die Anschlüsse GND, 5 V und 3,3 V verwendet. Auf dem unteren Bild sehen Sie, wie das Ergebnis aussehen sollte. Abb. 1.2: Das Shield richtig montiert 1.2 Die Beispiele downloaden In diesem Buch werden viele verschiedene Programme zum Ausprobieren und Nachprogrammieren vorgestellt. Alle Quelltexte komplett abzudrucken ist unmöglich. Aus diesem Grund können Sie sich die Beispiele aus dem Netz herunterladen. Sie finden die Zip-Datei auf der FRANZIS Internetseite http://buch.cd Um zum Download zu gelangen, müssen Sie lediglich die ISBN-Nummer 65278-0 dieses Hand-Buchs "FRANZIS MAKER KIT GrafikDisplays programmieren" eintippen. Kopieren Sie den im Download enthaltenen Ordner namens DisplayBeispiele komplett in Ihren Sketchordner. Diesen finden Sie unter Windows standardmäßig unter C:\Benutzer\fritz\Dokumente\Arduino\DisplayBeispiele\AnalogInput\AnalogInput.ino Wenn Sie nun die Arduino-Oberfläche starten, finden Sie unter MENU > Datei > Sketchbook > DisplayBeispiele > Starter.ino Seite 7 In diesem Ordner finden Sie alle Programme unter dem entsprechenden Kapitelnamen. Abb. 1.3: Alle FRANZIS GrafikDisplay-Beispiele dann in der ARDUINO-Entwicklungsumgebung enthalten. Wenn Sie selbst versuchen möchten, ein Programm mithilfe des Buchs eigenständig zu entwerfen, sollten Sie das Programm HelloWolrdDlY als Vorlage benutzen und unter anderem Namen abspeichern. Dadurch ist garantiert, dass sich alle wichtigen Library-Dateien in dem Ordner befinden. Wenn Sie später komplett selbstständig Programme entwerfen, können Sie dieses Beispiel ebenfalls als Vorlage verwenden.
Anleitung:
Grafik-Display auf ARDUINO UNO R3 aufstecken.
Mit USB Verbindungskabel mit PC verbinden.
Rechner > Geräte-Manager > Anschlüsse (COM & LPT) > Arduino Uno (COM5)
MENU > Datei > Voreinstellungen > Sketchbook-Speicherort: C:\User\fritz\Documents\Arduino
MENU > Werkzeuge > Platine: "Arduino Uno"
MENU > Werkzeuge > Port: "COM5 (Arduino Uno)" MENU > Datei > Sketchbook > DisplayBeispiele > Starter.ino
Hackerl = Verifizieren
Pfeil = Hochladen
ORDNER Starter | Starter.ino | Display.cpp | Display.h | Font.h |
1.3 Der Sketch "Starter" - das erste Beispiel Damit Sie sicher sein können, dass das Display und die Software korrekt funktionieren, sollten Sie nun das erste Beispiel ausprobieren. Dazu öffnen Sie das Programm, das genauso heißt wie dieses Kapitel, nämlich Starter. Laden Sie dieses Programm auf Ihren Controller. Im Idealfall sehen Sie dann auf Ihrem Display das folgende Bild. Seite 8
Starter.ino
#include "Display.h"
#include "SPI.h" #define LCD_BUTTON_LEFT A4 #define LCD_BUTTON_RIGHT A5 const PROGMEM byte qrCode [] = { 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0xC7, 0xC7, 0xC7, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x8E, 0x8E, 0x8E, 0x81, 0x81, 0x81, 0xF0, 0xF0, 0xF0, 0x7E, 0x7E, 0x7E, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x40, 0x20, 0xE8, 0xE0, 0xC0, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x03, 0x04, 0x08, 0x2F, 0x0F, 0x07, 0x03, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x3F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x3F, 0x3F, 0x3F, 0x38, 0x38, 0x38, 0xC7, 0xC7, 0xC7, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x38, 0x38, 0x38, 0xC0, 0xC0, 0xC0, 0x3F, 0x3F, 0x3F, 0xC7, 0xC7, 0xC7, 0xC7, 0xC0, 0xC0, 0xC0, 0x07, 0x07, 0x07, 0x38, 0x38, 0x38, 0xC7, 0xC7, 0xC7, 0xC0, 0xC0, 0xC0, 0xC7, 0xC7, 0xC7, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x70, 0x70, 0x70, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x71, 0x71, 0x71, 0x0E, 0x0E, 0x0E, 0x81, 0x81, 0x81, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x71, 0x71, 0x71, 0x80, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x71, 0x71, 0x71, 0x70, 0x70, 0x70, 0xF0, 0xF0, 0xF0, 0x8F, 0x8F, 0x8F, 0x0F, 0x0F, 0x0F, 0xF1, 0xF1, 0xF1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0xC0, 0xC0, 0xC0, 0x3F, 0x3F, 0x3F, 0xC7, 0xC7, 0xC7, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC0, 0xC0, 0xC0, 0x3F, 0x3F, 0x3F, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x78, 0x78, 0xE0, 0xE0, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xF1, 0xF1, 0xF1, 0x80, 0x80, 0x80, 0xF1, 0xF1, 0xF1, 0x8E, 0x8E, 0x8E, 0xF1, 0xF1, 0xF1, 0xF1, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x71, 0x71, 0x71, 0x8F, 0x8F, 0x8F, 0x81, 0x81, 0x81, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x10, 0x1D, 0x05, 0x00, 0x05, 0x19, 0x04, 0x00, 0x11, 0x1D, 0x04, 0x00, 0x04, 0x1D, 0x05, 0x00, 0x1C, 0x1C, 0x15, 0x00, 0x1C, 0x0C, 0x1C, 0x00, 0x10, 0x1C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0xE0, 0xE0, 0xE0, 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0xFC, 0x03, 0x03, 0x03, 0x1F, 0x1F, 0x1F, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; Display lcd = Display(); int contrast = 18; void setup() { pinMode(LCD_BUTTON_LEFT, INPUT); digitalWrite(LCD_BUTTON_LEFT, HIGH); pinMode(LCD_BUTTON_RIGHT, INPUT); digitalWrite(LCD_BUTTON_RIGHT, HIGH); lcd.init(contrast); setContrast(); } void loop() { if (!digitalRead(LCD_BUTTON_LEFT) && contrast > 0) { contrast--; setContrast(); } if (!digitalRead(LCD_BUTTON_RIGHT) && contrast < 63) { contrast++; setContrast(); } delay(50); } void setContrast() { char buffer[50]; lcd.writeCommand(0x81); lcd.writeCommand(contrast); sprintf(buffer, "%d", contrast); lcd.clearVideoBuffer(); lcd.drawBitmap(0, 0, 128, 64, qrCode); lcd.drawString(100, 13, buffer); lcd.show(); } Abb. 1.4: Der QR-Code des Beispiel-Sketches Starter.ino Es kann allerdings sein, dass Sie zuerst den Kontrast des Displays anpassen müssen. Dazu benutzen Sie die beiden unter dem Display angebrachten Taster. Mit dem linken Taster verringern Sie den Kontrast, mit dem rechten erhöhen Sie ihn. Durch Probieren finden Sie heraus, welcher Kontrast für Ihr Display der geeignetste ist. Sie sollten sich diesen Wert gut merken, denn in späteren Beispielen müssen Sie den Kontrast manuell im Quelltext anpassen. Doch dazu später mehr. Das Bild, das Sie nun auf dem Display sehen, ist ein QR-Code. Wenn Sie ein Smartphone besitzen, können Sie mit einer entsprechenden App den Code auslesen und werden auf die tiny.systems-Internetseite geleitet, die Ihnen später noch öfter begegnen wird. Mit diesem ersten Beispiel haben Sie schon etwas von den Möglichkeiten des Displays erfahren, doch erst im nächsten Kapitel geht es richtig los. Seite 9 ********************************************************* 12864 Graphics LCD library12864 is an unofficial Arduino library that supports 12864 Graphic LCDs that use the ST7920 chip. Download the library here: http://playground.arduino.cc/uploads/Code/LCD12864.zip http://playground.arduino.cc/Code/LCD12864 ********************************************************* Arduino-Treiber unter Windows installieren Um mit Ihrem ARDUINO UNO R3 -Board programmieren zu können, müssen Sie zunächst die Windows-Treiber installieren. Wir zeigen Ihnen, wie es funktioniert. Windows: Arduino-Software installieren Arduino-Treiber installieren Mithilfe der Open-Source IDE-Software (integrated development environment) können Sie ihre Sketche auf Ihren Arduino-Mircocontroller laden. Laden Sie sich die Installationsdatei der Arduino-IDE herunter und starten Sie die Installation. Treiber-Installation unter Windows Arduino mit dem PC verbinden Schließen Sie Ihr Arduino-Board mit einem USB-Kabels an Ihren Computer an. Windows startet eine Treiber-Installation, die aber meistens fehlschlägt. Ist das der Fall, gehen Sie folgendermaßen vor: Klicken Sie auf den START-Button und suchen Sie nach dem "Geräte-Manager". Damit Sie Ihr Arduino-Board finden, drücken Sie auf des kleine Dreieck vor dem Punkt "Anschlüsse (COM & LPT)". Klicken Sie mit der rechten Maustaste auf Ihren Arduino und wählen Sie die Option "Treibersoftware aktualisieren". Drücken Sie auf "Auf dem Computer nach Treibersoftware suchen" und navigieren Sie zum Pfad: "C/Programme/Arduino/drivers". Bestätigen Sie die Treiber-Installation und folgen Sie den weiteren Schritten. Der Treiber ist nun erfolgreich installiert. Windows: Arduino-IDE konfigurien Damit Sie Sketche mithilfe der Software auf Ihr Arduino-Board laden können, müssen Sie das richtige Board und den richtigen Port auswählen: Klicken Sie hierzu in der Arduino-IDE auf MENU > "Werkzeuge" und wählen Sie unter Board Ihren Arduino-Controller aus. Wiederholen Sie diesen Schritt für den Port, den das Arduino-Board verwendet. DIN A4 ausdrucken ********************************************************* Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected] ENDE |