#include #include #define PIN_LED 11 #define PIN_POT A0 LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей const byte averageFactor = 5; // коэффициент сглаживания показаний (0 = не сглаживать) // чем выше, тем больше "инерционность" void setup() { lcd.init(); lcd.backlight();// Включаем подсветку дисплея // Устанавливаем курсор на первую строку и нулевой символ. lcd.setCursor(0, 0); lcd.print("Brightn:"); // Устанавливаем курсор на первую строку и девятый символ. lcd.setCursor(15, 0); lcd.print("%"); // Пин, к которому подсоединяется светодиод определяем как выход pinMode(PIN_LED, OUTPUT); // Пин с переменным резистором является входом pinMode(PIN_POT, INPUT); } void loop() { // Поворот потенциометра по значению напряжения [0, 1023] int rotate; // Яркость светодиода [0, 255] int brightn; // Считывание в переменную rotate напряжения с переменного резистора: // микроконтроллер будет выдавать числа от 0 до 1023 // пропорциональны положению поворота вала rotate = analogRead(PIN_POT); // Преобразуем значение в яркость. Для этого делим rotate на 4, что с учетом округления даст нам число от 0 до 255. // Именно это число мы подадим на шим-выход, с помощью которого можно управлять яркостью. brightn = rotate / 4; // Запись шим значения яркости на светодиод analogWrite(PIN_LED, brightn); float rotatePercent = (rotate / 1023.0f) * 100; // Устанавливаем курсор на первую строку и девятый символ. lcd.setCursor(9, 0); lcd.print(rotatePercent); }