diff options
Diffstat (limited to 'lib/oled/oled.cpp')
| -rw-r--r-- | lib/oled/oled.cpp | 88 |
1 files changed, 45 insertions, 43 deletions
diff --git a/lib/oled/oled.cpp b/lib/oled/oled.cpp index db1b556..6036c70 100644 --- a/lib/oled/oled.cpp +++ b/lib/oled/oled.cpp @@ -1,43 +1,45 @@ -// #include <Arduino.h> -// #include <Wire.h> -// #include <Adafruit_GFX.h> -// #include <Adafruit_SSD1306.h> -// #include "settings.h" -// #include "oled.h" - - -// OLED::OLED() : display(OLED_WIDTH, OLED_HEIGHT, &Wire, -1) -// { -// // Najpierw uruchom I2C -// Wire.begin(SDA_PIN, SCL_PIN); - -// // Potem dopiero inicjalizuj OLED -// if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) { -// Serial.println("OLED init failed!"); -// } - -// display.clearDisplay(); -// display.display(); -// } - - -// void OLED::print(const String &text, int x, int y) -// { -// display.setTextSize(1); -// display.setTextColor(WHITE); -// display.setCursor(x, y); -// display.println(text); -// display.display(); -// } - -// void OLED::clear() -// { -// display.clearDisplay(); -// display.display(); -// } - -// void OLED::drawBox() -// { -// display.drawRect(0, 0, 128, 64, WHITE); -// display.display(); -// } +#include <Arduino.h> +#include <Wire.h> +#include <Adafruit_GFX.h> +#include <Adafruit_SSD1306.h> +#include "settings.h" +#include "oled.h" + + +OLED::OLED() +: display(OLED_WIDTH, OLED_HEIGHT, &Wire, -1) {} + +void OLED::init() { + Wire.begin(SDA_PIN, SCL_PIN); + display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); + display.clearDisplay(); + display.setTextSize(1); + display.setTextColor(SSD1306_WHITE); +} + +void OLED::showMessage(const String& msg, int size, int x, int y) { + display.clearDisplay(); + display.setCursor(x, y); + display.setTextSize(size); + display.setTextColor(SSD1306_WHITE); + display.println(msg); + display.display(); +} + +void OLED::drawBitmap(const uint8_t* bitmap) { + display.clearDisplay(); + display.drawBitmap(0, 0, bitmap, OLED_WIDTH, OLED_HEIGHT, SSD1306_WHITE); + display.display(); +} + +void OLED::showAnimation(const uint8_t* animation[], int frames, int delayTime) { + for (int i = 0; i < frames; i++) { + drawBitmap(animation[i]); + delay(delayTime); + } +} + +void OLED::clear() { + display.clearDisplay(); + display.display(); +} |