128×64 OLED am Arduino micro

Information ist wichtig. Und irgendwie will die auch ausgegeben werden.
In diesem Beitrag zeige ich, wie das mit einem 128×64 OLED an einem Arduino micro ganz einfach geht…

Der Aufbau ist sehr übersichtlich:

arduinomicro oled
Experimentieraufbau (erstellt mit fritzing)

Hinweis zur Verkabelung: Beim micro findet sich der i²c-Bus an den Pins D2 und D3.

Bei größeren Boards wird A4 und A5 verwendet. Diese Ports finden sich auch in den meisten Anleitungen.

Zum Sourcecode:

Benötigt werden folgende Bibliotheken:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h> (download von github)
#include <Adafruit_SSD1306.h> (download von github)

Wichtig:
Im File Adafruit_SSD1306.h (zu finden unter …\Documents\Arduino\libraries\Adafruit_SSD1306-master) muss folgende Anpassung durchgeführt werden:

Hier muss die Zeile mit dem 128_32 auskommentiert werden und die Kommentarzeichen beim 128_64er entfernt werden. Sollte dann so aussehen:
#define SSD1306_128_64
// #define SSD1306_128_32
// #define SSD1306_96_16

Und hier nun der Sketch um das Display zu testen:

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4 // not used but necessary
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
// initialize with the I2C addr 0x3C
// in most samples this is different and !true
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}

#define DRAW_DELAY 118
#define D_NUM 47

void loop() {
// clear the display
display.clearDisplay();

// set text color
display.setTextColor(WHITE);
// set text size
display.setTextSize(1);
// set text cursor position
display.setCursor(1,0);
// show text
display.println("oled - test");
display.setCursor(1,56);
display.println("0x4d7342.de");
display.setTextSize(2);
display.setCursor(34,15);
display.println("see more stuff");
display.setCursor(30,34);
display.println("in my blog");
// put it to the display and show it
display.display();
delay(8000);

}

Alle Befehle und Möglichkeiten sind unter https://learn.adafruit.com/adafruit-gfx-graphics-library/overview verfügbar…

Mögliche Einsatzgebiete:

  • Statusanzeige an Steckdosen
  • Temperatur und Luftfeuchtigkeit anzeigen
  • Generell: Infos anzeigen
  • Bei mir in Planung: Fernbedienung für VLC-StreamingServer
  • be creative!