Реализовать управление яркостью с помощью кнопки и функции analogWrite() – при нажатой кнопке яркость светодиода постепенно нарастает, при отпущенной остается неизменной. Яркость должна нарастать на 12 пунктов в секунду (имеется в виду градация по шкале от 0 до 255, где 0 – минимум, 255 – максимум).
#define button1 2
#define led1 13
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledLevel = 0;
int brightness = 0; // уставливаем начально значение яркости
int fadeAmount = 12; // шаг приращения/убывания яркости
void setup() {
// устанваливаем пин 13 в режим выхода
pinMode(button1, INPUT); //настариваем пин кнопки на вход
pinMode(led1, OUTPUT); //настариваем пин светодиода на выход
// функция для подавления дребезга
}
boolean debounse(boolean last) {
boolean current = digitalRead(button1);
if(last != current) {
delay(5);
current = digitalRead(button1);
}
return current;
}
void loop() {
currentButton = debounse(lastButton);
currentButton = debounse(lastButton);
//первый цикл, постепенно включает светодиодик
if(lastButton == LOW && currentButton == HIGH) {
}
currentButton = debounse(lastButton);
// устанавливаем значение широты импульса на выходе 13
// задавая яркость светодиода
analogWrite(led1, brightness);
// измением значение в переменной для яркости
brightness = brightness + fadeAmount;
// при достижение крайних значений для яркости
// меняем знак переменной шага приращения/убывания яркости
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// делаем паузу для достижения плавного наращивания/убывания яркости
delay(30);
}