#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() {
// Ініціалізація I2C адреси 0x3C(для 128x64)
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
for(;;);
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
drawSawtoothWave();
}
void loop() {}
void drawSawtoothWave() {
uint8_t amplitude = 20;
uint8_t offset = 20; // Вертикальне зміщення від верхньої частини екрана
uint8_t period = 30; // Період хвилі в пікселях
for(int x = 0; x < SCREEN_WIDTH; x++) {
int y = (x % period) * amplitude / period;
display.drawPixel(x, offset + y, SSD1306_WHITE);
}
// Напис
display.setTextSize(1); // 1:1 піксельний масштаб
display.setCursor(0, 50); // Початок з верхнього лівого кута
display.print(F("Sawtooth Wave"));
display.display();
}