Код (Text): int pinR = 11; // RED Контакт для управления цветами светодиода int pinB = 13; int buttonR = A0; // Для считывания значений с кнопки. // Этот раздел переменных используется для корректного получения значений с кнопки. // RED boolean lastbuttonR = LOW; // последнее значение кнопки boolean currentbuttonR = LOW; // текущее значение кнопки int ledonR = 0; // яркость светодиода //BLUE boolean lastbuttonB = LOW; boolean currentbuttonB = LOW; int ledonB = 0; // Функция Setup выполняется Ардуино только один раз при включении. // данная функция используется для установки параметров микроконтрллера. void setup() { pinMode(pinR, OUTPUT); pinMode(pinB, OUTPUT); pinMode(buttonR, INPUT); } // Булевая функция для определения состояний кнопки. boolean debounceR(boolean last) // Переменная last принимает значение, переданное функции { boolean current = digitalRead(buttonR); // Объявляем переменную current и считываем в нее значение кнопки if (last != current) // Если текущее значение кнопки отличается от переданной в функцию ( != - не равно ) { delay(5); // тогда ждем 5 милисекунд. Это необходимо чтоб избавиться от колебаний напряжения поступающих с кнопки и получить точное значение. current = digitalRead(buttonR); // повторно считвыаем значение с кнопки. Уже без шумов. } return current; // Возвращаем значение полученное логическое значение. // last и current доступны только в пределах данной функции. } // Бесконечный цикл, повоторяющийся на микроконтроллере, пока он включен. void loop() { // Управление красным цветом светодиода. currentbuttonR = debounceR(lastbuttonR); // проферяеям при помощи функции debounceR состояние кнопки. if (lastbuttonR == LOW && currentbuttonR == HIGH ) // Если предыдущее значение было ноль, а текущее единица. { ledonR = ledonR + 51 ; // Тогда увеличиваем яркость светодиода на 51 if ( ledonR > 255) ledonR = 0; // Если значении становится больше 255, то гасим светодиод } lastbuttonR = currentbuttonR; // Запоминамем текущее состояние кнопки analogWrite(pinR, ledonR); // Передаем измененное значение яркости на вывод Ардуино. }