From 4f96161a387c3bc32ee084f14095e50ab9716b5e Mon Sep 17 00:00:00 2001 From: EnricoGuccii Date: Sun, 11 May 2025 21:42:04 +0200 Subject: add oled --- lib/motors/motors.cpp | 4 +-- lib/oled/oled.cpp | 88 ++++++++++++++++++++++++++------------------------- lib/oled/oled.h | 32 +++++++++---------- 3 files changed, 63 insertions(+), 61 deletions(-) (limited to 'lib') diff --git a/lib/motors/motors.cpp b/lib/motors/motors.cpp index d0e71b4..68c633d 100644 --- a/lib/motors/motors.cpp +++ b/lib/motors/motors.cpp @@ -123,7 +123,7 @@ void MOTORS::backward(int speed, int duration) } } -void MOTORS::leftTurn(int speed, int duration) +void MOTORS::rightTurn(int speed, int duration) { rightForward(speed); leftBackward(speed); @@ -134,7 +134,7 @@ void MOTORS::leftTurn(int speed, int duration) } } -void MOTORS::rightTurn(int speed, int duration) +void MOTORS::leftTurn(int speed, int duration) { rightBackward(speed); leftForward(speed); 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 -// #include -// #include -// #include -// #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 +#include +#include +#include +#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(); +} diff --git a/lib/oled/oled.h b/lib/oled/oled.h index 7cda336..4873285 100644 --- a/lib/oled/oled.h +++ b/lib/oled/oled.h @@ -1,18 +1,18 @@ -// #pragma once -// #include -// #include "settings.h" +#pragma once +#include +#include "settings.h" -// class OLED -// { -// public: -// OLED(); -// void clear(); -// void print(const String &text, int x, int y); -// void drawBox(); -// void setCursor(int x, int y); -// void setTextSize(int size); -// void showAnimation(); -// private: -// Adafruit_SSD1306 display; -// }; +class OLED { +public: + OLED(); + + void init(); + void showMessage(const String& msg,int size = 1 ,int x = 0, int y = 0); + void drawBitmap(const uint8_t* bitmap); + void showAnimation(const uint8_t* animation[], int frames, int delayTime); + void clear(); + +private: + Adafruit_SSD1306 display; +}; -- cgit v1.2.3