summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/motors/motors.cpp4
-rw-r--r--lib/oled/oled.cpp88
-rw-r--r--lib/oled/oled.h32
-rw-r--r--src/main.cpp60
4 files changed, 71 insertions, 113 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;
+};
diff --git a/src/main.cpp b/src/main.cpp
index 84b5b85..9a6be80 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -6,66 +6,22 @@
#include "motors.h"
RGB rgb;
-BUZZER buzzer;
-MOTORS motors; // speed 80 is prefered, because of higher input voltage (5V -> 3.7V after H-bridge), motor is rated for 3V
- // in practice, speed below 70 dosn't even work.
-
-
+BUZZER buzzer;
+MOTORS motors; // speed 80 is prefered, because of higher input voltage (5V -> 3.7V after H-bridge), motor is rated for 3V
+// in practice, speed below 70 dosn't even work.
+OLED oled;
void setup()
{
rgb.init();
buzzer.init();
motors.init();
-
+ oled.init();
+ oled.showMessage("czesc");
+ //oled.drawBitmap(Logo);
}
void loop()
{
- rgb.setColorRGB(0, 255, 0, true);
- motors.forward(100, 2000);
- delay(1000);
- rgb.setColorRGB(255, 0, 0, true);
- motors.backward(100, 2000);
- delay(1000);
- rgb.setColorRGB(0, 255, 255, true);
- motors.leftTurn(100, 2000);
- delay(1000);
- rgb.setColorRGB(255, 255, 0, true);
- motors.rightTurn(100, 2000);
- delay(1000);
-
- motors.rightForward(100, 2000);
- delay(1000);
- motors.rightBackward(100, 2000);
- delay(1000);
- motors.leftForward(100, 2000);
- delay(1000);
- motors.leftBackward(100, 2000);
- delay(1000);
-
- // buzzer.playMelody(happy, 8);
- // delay(1000);
- // buzzer.playMelody(anger, 8);
- // delay(1000);
- // buzzer.playMelody(alaarm, 9);
- // delay(1000);
- // buzzer.playMelody(surprise, 9);
- // delay(1000);
-
- //buzzer.playMelody(melody, 8);
- // rgb.setColorRGB(255, 0, 0, true);
- // delay(1000);
- // rgb.fadeColor(0, 255, 0, 1000);
- // delay(1000);
- // rgb.blink(3, 500);
- // delay(1000);
- // rgb.breathe(4, 1000);
- // rgb.rainbowCycle(8000, 1.0);
- // rgb.setColorRGB(0, 0, 0, true);
- // delay(1000);
- // rgb.rainbowCycle(8000, 1);
- // rgb.setColorRGB(0, 0, 0, true);
- // delay(1000);
- // rgb.rainbowCycle(8000, 2);
+
} \ No newline at end of file