// дефайн перед подключением либы - использовать microWire (лёгкая либа для I2C)
//#define USE_MICRO_WIRE
// дефайн перед подключением либы - скорость SPI
//#define OLED_SPI_SPEED 4000000ul
#include "GyverOLED.h"
// инициализация:
// GyverOLED<модель, буфер, интерфейс, CS, DC, RST> oled;
// "по умолчанию" - можно не указывать
// модель дисплея:
// SSD1306_128x32
// SSD1306_128x64
// SSH1106_128x64 (ТОЛЬКО С БУФЕРОМ)
// буфер:
// OLED_NO_BUFFER (без буфера)
// OLED_BUFFER (с буфером на стороне МК) - по умолчанию
// интерфейс:
// OLED_I2C - по умолчанию
// OLED_SPI (указать пины CS, DC, RST/RES)
// примеры:
//GyverOLED<SSD1306_128x32, OLED_BUFFER> oled;
//GyverOLED<SSD1306_128x32, OLED_NO_BUFFER> oled;
GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;
//GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
//GyverOLED<SSD1306_128x64, OLED_BUFFER, OLED_SPI, 8, 7, 6> oled;
//GyverOLED<SSH1106_128x64> oled;
// для I2C можно передать адрес: GyverOLED oled(0x3C);
struct myMerz
{
word freq;
unsigned long temp;
bool flsvet;
};
myMerz trig[]={{500,0,false}, // интервал мерцания двоеточия при работе
{200,0,false}, // интервал мерцания минут и часов при задании времени
{1000,0,false}};// интервал прерывания сигнала при окончании работы
void setup() {
Serial.begin(9600);
oled.init(); // инициализация
// --------------------------
// настройка скорости I2C
//Wire.setClock(800000L); // макс. 800'000
// --------------------------
oled.clear(); // очистить дисплей (или буфер)
oled.update(); // обновить. Только для режима с буфером! OLED_BUFFER
// --------------------------
/*oled.home();// курсор в 0,0
oled.setScale(2);
oled.print("ЧАСЫ"); // печатай что угодно: числа, строки, float, как Serial!
oled.update();
delay(2000);
*/
// --------------------------
oled.setCursor(0, 0); // курсор в (пиксель X, строка Y)
oled.setScale(2);
oled.invertText(true);
oled.print("Часы");
oled.invertText(false);
oled.setCursor(52,0);
oled.print("Мин");
oled.setCursor(93,0);
oled.print("Сек");
oled.update();
delay(2000);
/*
// --------------------------
oled.setCursorXY(15, 30); // курсор в (пиксель X, пиксель Y)
oled.setScale(3);
oled.invertText(true); // инвертируй текст!
oled.print("Привет!");
oled.update();
delay(2000);
// --------------------------
// СЕРВИС
//oled.setContrast(10); // яркость 0..255
//oled.setPower(true); // true/false - включить/выключить дисплей
//oled.flipH(true); // true/false - отзеркалить по горизонтали
//oled.flipV(true); // true/false - отзеркалить по вертикали
//oled.isEnd(); // возвращает true, если дисплей "кончился" - при побуквенном выводе
// --------------------------
oled.clear();
oled.dot(0, 0); // точка на x,y
oled.dot(0, 1, 1); // третий аргумент: 0 выкл пиксель, 1 вкл пиксель (по умолч)
oled.line(5, 5, 10, 10); // линия x0,y0,x1,y1
//oled.line(5, 5, 10, 10, 0); // пятый аргумент: 0 стереть, 1 нарисовать (по умолч)
oled.fastLineH(0, 5, 10); // горизонтальная линия (y, x1, x2)
//oled.fastLineH(0, 5, 10, 0); // четвёртый аргумент: 0 стереть, 1 нарисовать (по умолч)
oled.fastLineV(0, 5, 10); // аналогично верт. линия (x, y1, y2)
oled.rect(20, 20, 30, 25); // прямоугольник (x0,y0,x1,y1)
oled.rect(5, 35, 35, 60, OLED_STROKE); // прямоугольник (x0,y0,x1,y1)
// параметры фигуры:
// OLED_CLEAR - очистить
// OLED_FILL - залить
// OLED_STROKE - нарисовать рамку
oled.roundRect(50, 5, 80, 25, OLED_STROKE); // аналогично скруглённый прямоугольник
oled.circle(60, 45, 15, OLED_STROKE); // окружность с центром в (x,y, с радиусом)
oled.circle(60, 45, 5, OLED_FILL); // четвёртый аргумент: параметр фигуры
*/
/*
// битмап
oled.drawBitmap(90, 16, bitmap_32x32, 32, 32, BITMAP_NORMAL, BUF_ADD);
//oled.drawBitmap(90, 16, bitmap_32x32, 32, 32); // по умолч. нормал и BUF_ADD
// x, y, имя, ширина, высота, BITMAP_NORMAL(0)/BITMAP_INVERT(1), BUF_ADD/BUF_SUBTRACT/BUF_REPLACE
oled.update();
*/
}
void loop() {
}