#define BTN_UP_PIN 3 // пин кнопки вверх
#define BTN_DOWN_PIN 4 // пин кнопки вниз
#define LED_PIN 5 // пин светодиода
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <GyverButton.h>
#include <EEPROM.h>
Adafruit_SSD1306 display(-1);
GButton btnUP (BTN_UP_PIN); // кнопка "яркость вверх"
GButton btnDOWN(BTN_DOWN_PIN); // кнопка "яркость вниз"
int LEDbright = 0;
void setup()
{
// инициализируем I2C addr 0x3C
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
pinMode(LED_PIN, OUTPUT); // пин светодиода как выход
// EEPROM.get (0, LEDbright); // прочитали яркость из адреса 0
//analogWrite(LED_PIN, LEDbright); // включили
}
void loop()
{
// опрос кнопок
btnUP.tick();
btnDOWN.tick();
if (btnUP.isClick())
{
// увеличение по клику
LEDbright += 5;
setBright();
dis_LEDbright();
}
if (btnDOWN.isClick())
{
// уменьшение по клику
LEDbright -= 5;
setBright();
dis_LEDbright();
}
}
void setBright()
{
LEDbright = constrain(LEDbright, 0, 20); // ограничили
//EEPROM.put (0, LEDbright); // записали по адресу 0
analogWrite(LED_PIN, LEDbright); // изменили яркость
}
void dis_LEDbright()
{
// Очистить буфер.
display.clearDisplay();
// Показать текст
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println(LEDbright);
display.display();
//delay(2000);
display.clearDisplay();
}