#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
const uint8_t PIN_A = 2;
const uint8_t PIN_B = 3;
const uint8_t PIN_C = 4;
const uint8_t PIN_D = 5;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void setup() {
pinMode(PIN_A, OUTPUT);
pinMode(PIN_B, OUTPUT);
pinMode(PIN_C, OUTPUT);
pinMode(PIN_D, OUTPUT);
digitalWrite(PIN_A,true);
digitalWrite(PIN_B,true);
digitalWrite(PIN_C,true);
digitalWrite(PIN_D,true);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
}
void loop() {
int x = 0;
int y = 0;
for (int i = 0; i < 256; i++) {
display.setCursor(x, y);
display.print(i);
display.write(i);
x += 27; // szerokość znaku w pikselach (font 6x8)
if (x > 100) { // koniec linii
x = 0;
y += 8;
}
if (y > 60) { // koniec ekranu
display.display();
delay(500);
display.clearDisplay();
x = 0;
y = 0;
}
if (i>191) digitalWrite(PIN_A,false);
if (i>191+32) digitalWrite(PIN_B,false);
if (i>191+64) digitalWrite(PIN_C,false);
}
display.display();
}