05 OLED-display
1. Вывод изображения в формате bitmap.
Пример изображений:
Программа-конвертер изображений в формате bitmap в шестнадцатеричные коды для OLED-дисплея.
В папке с проектом - два файла: прошивка и файл
с массивом, содержащим коды изображения в формате bitmap.
graphics.c Загрузить
oled-1.ino
#include <OLED_I2C.h> OLED myOLED(SDA, SCL, 8); extern uint8_t SmallFont[]; extern uint8_t cozmo1[]; extern uint8_t cozmo2[]; uint8_t* bm; int pacy; void setup() { myOLED.begin(); myOLED.setFont(SmallFont); randomSeed(analogRead(7)); } void loop() { myOLED.clrScr(); myOLED.drawBitmap(0, 0, cozmo1, 128, 64); //myOLED.drawRect(0, 0, 127, 63); myOLED.update(); delay(2000); myOLED.drawBitmap(0, 0, cozmo2, 128, 64); myOLED.update(); delay(2000); }
2. Вывод изображения прогресс-бара с числовой индикацией на OLED-дисплей.
#include <OLED_I2C.h> #define OLED_HIGHT 64 #define OLED_WIDTH 128 #define W_PROGRESS_BAR 15 OLED myOLED(SDA, SCL, 8); extern uint8_t SmallFont[]; extern uint8_t MediumNumbers[]; extern uint8_t BigNumbers[]; int x1, x2, y1, y2; int step_x = 1; void setup() { myOLED.begin(); myOLED.setFont(BigNumbers); randomSeed(analogRead(7)); x1 = 0; y1 = OLED_HIGHT/2 - W_PROGRESS_BAR/2; y2 = OLED_HIGHT/2 + W_PROGRESS_BAR/2; myOLED.drawRect(0, 0, OLED_WIDTH-1, OLED_HIGHT-1); } void loop() { if (step_x == 1) { myOLED.drawLine(x1, y1, x1, y2); } if (step_x == -1) { myOLED.clrLine(x1, y1, x1, y2); } x1+=step_x; if (x1 > OLED_WIDTH - 1) { step_x = -1; } if (x1 < 0) { step_x = 1; } delay(30); myOLED.printNumI(x1, CENTER, 0); myOLED.update(); }