Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement