#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // Szerokość ekranu OLED w pikselach
#define SCREEN_HEIGHT 64 // Wysokość ekranu OLED w pikselach
// Deklaracja obiektu wyświetlacza
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600);
// Inicjalizacja wyświetlacza
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Adres I2C wyświetlacza SSD1306
Serial.println(F("Nie znaleziono SSD1306"));
for(;;); // Pętla nieskończona
}
display.clearDisplay();
display.setTextSize(1); // Ustaw rozmiar tekstu (1: normalny)
display.setTextColor(WHITE); // Ustaw kolor tekstu (biały)
display.setCursor(0,0); // Ustaw kursor w górnym lewym rogu
}
void loop() {
int sensorValue = analogRead(A0); // Odczytaj wartość z potencjometru
int liters = map(sensorValue, 0, 1023, 0, 45); // Przekonwertuj odczyt na zakres 0-45L
display.clearDisplay();
// Wyświetl stan paliwa
display.setTextSize(2); // Duża czcionka dla liczby litrów
display.setCursor((SCREEN_WIDTH - 6*6)/2, (SCREEN_HEIGHT - 16)/2); // Wyśrodkuj tekst na ekranie
display.print(liters); // Wyświetl ilość paliwa
display.print(" L"); // Dodaj literę L
// Sprawdź, czy ilość paliwa to mniej niż 5 litrów
if(liters < 5) {
display.setTextSize(1); // Mniejsza czcionka dla ostrzeżenia
display.setCursor((SCREEN_WIDTH - 6*6)/2, 0); // Ustaw kursor na górze ekranu
display.println(F("REZERWA")); // Wyświetl ostrzeżenie
}
display.display(); // Aktualizuj ekran OLED
delay(500); // Opóźnienie dla czytelności
}