Hey,
ich wollte ein Bild auf ein SSD1306 Oled Display anzeigen lassen. Habe es mit LcdAssistant convertiert, allerdings wird nur müll angezeigt. Nach ein wenig goggeln, hab ich herrausgefunden, das die .bmp nicht in Hex sondern in binär convertiert werden muss. Auf einer anderen seite stand, das es egal sei, ob hex oder binär.
Weis wer weiter?
Hier mal mein Code:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_CS 2 // CS
#define OLED_DC 3 // DC
#define OLED_RESET 4 // RST
#define OLED_MOSI 5 // D1
#define OLED_CLK 6 // D0
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
static unsigned char PROGMEM logo16_glcd_bmp[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x38, 0x4C, 0x76, 0x7B, 0x7D,
0x7D, 0x3D, 0x0D, 0x65, 0x79, 0x7D, 0x7D, 0x7D, 0x3D, 0x1D, 0x65, 0x71, 0x7D, 0x7D, 0x7D, 0x3D,
0x8D, 0xE1, 0x7D, 0x1F, 0x00, 0x00, 0x80, 0xC0, 0x60, 0xB8, 0xCC, 0xC6, 0xD1, 0xDC, 0xDE, 0xDF,
0x1F, 0x8F, 0x87, 0xD9, 0xDC, 0xDF, 0xDF, 0x5F, 0x9F, 0xC7, 0xD1, 0xDC, 0xDE, 0x5F, 0x1F, 0x8F,
0xE7, 0x71, 0x3C, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x3C, 0x27, 0x29, 0x2C, 0x2E, 0x2F, 0x2F, 0x2F,
0x2F, 0x27, 0x23, 0x28, 0x2E, 0x2F, 0x2F, 0x2F, 0x2F, 0x23, 0x28, 0x2E, 0x2F, 0x2F, 0x2F, 0x27,
0x31, 0x1C, 0x0E,
};
void setup()
{
Wire.begin();
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC);
display.clearDisplay();
}
void loop()
{
display.drawBitmap(10, 40, logo16_glcd_bmp, 36, 22, 1);
display.display();
}