PHP Dashboard für HmIP Smartmeter
09.10.2024
Elektronik | Funk | Software
Der Technik-Blog
Für dieses Projekt gibt es auch ein Video auf Youtube: OLED LCD Display (128x32 Pixel) über I2C mit dem Arduino und der GFX-Library von Adafruit ansteuern
Für Mikrocontroller gibt es sehr viele Displays. Neben den Farb-LCD-Displays oder den Matrix Displays werden mittlerweile sehr oft OLED Displays in den Projekten verbaut. Der Vorteil der OLED-Displays liegt darin, dass diese relativ günstig sind. Da jeder einzelne Pixel leuchtet, erzeugen OLED-Displays ein sehr gutes Kontrastverhältnis. Die Displays sind in verschiedenen Farben und Größen erhältlich. Bekannte Größen sind beispielsweiße 128x64 Pixel oder 128x32 Pixel. Zusätzlich sind die Displays auch sehr energiesparend, da nur jeder Pixel, der in Verwendung ist, leuchtet.
Das Display wird über die I2C Schnittstelle angesteuert. Details zur Adresse gibt es im Datenblatt vom Hersteller. Alternativ kann die I2C Adresse auch mit dem I2C-Scanner ermittelt werden. In unserem Beispiel wird ein 128x32 Pixel OLED-Display verwendet. Die Spannungsversorgung kommt direkt vom Arduino Board und beträgt 5 Volt. Zusätzlich werden noch zwei Bibliotheken benötigt, um das Display ansteuern zu können. Die SSD1306 Library wird für das eigentliche OLED Display benötigt und steuert den Controller am Display an. Die zweite Library (Adafruit GFX) ist die Grafik Library, die z. B. einen String einfach am Display anzeigt und im Hintergrund berechnet, welche Pixel angesteuert werden müssen, um diesen String richtig am Display anzeigen zu können.
Zuerst müssen beide Bibliotheken in den Librarys-Ordner vom Arduino IDE kopiert worden sein. Unser Beispielcode ist ein sehr einfacher Code, der lediglich drei Zeilen am Display generiert. In der ersten und letzten Zeile wird ein statischer Text angezeigt. In der Mitte läuft ein Counter, der die Laufzeit der Software in Sekunden ausgibt. Das Display wird im Hintergrund ständig aktualisierst. Die SSD1306 Library hat auch einen Beispielcode, der sehr viele Anwendungsmöglichkeiten vom Display vorstellt. Neben der normalen Textanzeige können auch Animationen erstellt werden oder Beispielsweiße eine Laufschrift, Icons (Bitmap), Kurven, Kreise oder verschiedene Schriftarten angezeigt werden.
#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> Adafruit_SSD1306 display(4); //OLED_RESET 4 #if (SSD1306_LCDHEIGHT != 32) #error("Height incorrect, change Adafruit_SSD1306.h"); #endif void setup() { Serial.begin(9600); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //define I2C Adress display.clearDisplay(); } void loop() { long runtime = millis() / 1000; display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(25, 0); display.println("Hello world!"); display.setTextColor(WHITE); display.setTextSize(2); display.println(runtime); display.setTextSize(1); display.setTextColor(BLACK, WHITE); //Change Background to White display.setCursor(20, 25); display.println("WWW.AEQ-WEB.COM"); display.display(); display.clearDisplay(); }
PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?
WeiterlesenDer PT100 ist ein sehr präziser industrieller Temperatursensor. In diesem Artikel geht es um den Bau eines Messverstärkers zum Einlesen eines PT100 am Arduino
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved