#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
// I2C skener
Serial.println("Skeniranje I2C vodila...");
Wire.begin();
byte error, address;
int devices = 0;
for (address = 1; address < 127; address++) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("Naprava najdena na naslovu 0x");
if (address < 16) Serial.print("0");
Serial.println(address, HEX);
devices++;
}
}
if (devices == 0) {
Serial.println("Ni najdenih I2C naprav!");
} else {
Serial.println("Skeniranje končano.");
}
// Poskus inicializacije OLED
Serial.println("Poskus inicializacije OLED z naslovom 0x3C...");
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Napaka pri naslovu 0x3C, poskus z 0x3D...");
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
Serial.println("Napaka pri inicializaciji OLED na obeh naslovih!");
return; // Ne ustavimo programa, da vidimo druge izpise
} else {
Serial.println("OLED uspešno inicializiran na naslovu 0x3D.");
}
} else {
Serial.println("OLED uspešno inicializiran na naslovu 0x3C.");
}
// Prikaži testno sporočilo
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Test zaslona OLED");
display.println("Deluje!");
display.display();
}
void loop() {
}