diff options
| author | EnricoGuccii <partyka.003@gmail.com> | 2025-05-11 21:42:04 +0200 |
|---|---|---|
| committer | EnricoGuccii <partyka.003@gmail.com> | 2025-05-11 21:42:04 +0200 |
| commit | 4f96161a387c3bc32ee084f14095e50ab9716b5e (patch) | |
| tree | c7b0e76e5b5a5d412bed4ce0f458d197f2a07ae7 /lib | |
| parent | f3a5b90d090fda687adad44e37200fa446fcf7e0 (diff) | |
add oled
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/motors/motors.cpp | 4 | ||||
| -rw-r--r-- | lib/oled/oled.cpp | 88 | ||||
| -rw-r--r-- | lib/oled/oled.h | 32 |
3 files changed, 63 insertions, 61 deletions
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 <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(); +} 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 <Adafruit_SSD1306.h> -// #include "settings.h" +#pragma once +#include <Adafruit_SSD1306.h> +#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; +}; |