Heute geht es mal wieder um ein Display. Doch dieses mal betrachten wir kein gewöhnliches Display sondern ein OLED-Display. Das winzige Display, das ich euch heute vorstellen möchte ist gerade mal 0,96′ groß und eignet sich somit sehr gut für sehr kleine Schaltungen die Informationen über eine HMI bereitstellen müssen.

Obwohl das Display so winzig ist, siehe Vergleich zu einer 2-Euro-Münze, verfügt es über eine beachtliche Auflösung von 128×64 Pixel. Angesteuert wird das kleine Schmuckstück über die integrierte I2C-Schnittstelle. So benötigt das Display lediglich vier Anschlussleitungen! Der Betriebsspannunsgsbereich des Displays geht von 3,3V bis zu 5V. Diese Displays sind für unter 10€ bei eBay mit dem Suchbegriff “OLED Display” in verschiedenen Farben zu finden. Das Modul auf den Fotos ist die Version in Weiß.

Nutzung der Routinen

Die Displayroutinen arbeiten mit einem lokalen Framebuffer auf dem Controller. Sämtliche Aktionen wie das Setzen eines Pixels, das Zeichnen einer Linie, … werden lokal im Framebuffer durchgeführt. Mit dem Aufruf der Funktion fb_show kann der Inhalt des Framebuffers dann auf dem Display dargestellt werden.

void main (void)
{
   /*Alle Initialisierungen durchführen*/
   initAll();
   lcd_init();
 
   /*Etwas Text in den Framebuffer schreiben*/
   fb_draw_string(0,0,"SSD1306");
   fb_draw_string(0,1,"pic-projekte.de");

   /*Den Framebuffer zur Anzeige bringen*/
   fb_show();
 
   /*Endlosschleife*/
   while(1)
   {  
   }
}

Download

Da die Routinen für das Display wirklich nicht kompliziert sind, möchte ich auf eine detaillierte Analyse verzichten und lediglich den Download anbieten. Die Routinen sind mit dem für den XC8-Compiler von Microchip in C geschrieben. Der Abstraktionsgrad der Sprache C macht die Routinen jedoch sehr einfach portierbar und somit für viele Plattformen nutzbar. Der Download beinhaltet neben den Routinen auch einen dazugehörigen Font sowie ein Minimalbeispiel zur Anwendung der Routinen. Alternativ sind die Routinen auch in meinem GitHub-Repository zu finden.

Leave a Comment