Уважаемые форумчане, всем доброго времени. Подскажите пожалуйста абсолютному чайнику на пути программирования для ардуино. Хочу собрать приборчик для автоматического управления световым оборудованием в авто и сразу на этапе макетированния упёрся в проблему. Суть прибора и скетча следующая: при появлении на 8 пине логического нуля на 5 пине должен формироваться шим с плавным повышением мощности до 50 % и последующим удержанием данной нагрузки на уровне 50%, а при подче на 8 ногу логической единицы генерация шим должна сразу прекратиться. Собственно проблема следующая: все условия выполняются, шим есть, включенме/отключение по состоянию 8го пина есть. Но при прохождения программы до конца шим перезапускается и лампа плавно разгорается, тухнет и сново разгорается бесконечно. Понимаю, что вопрос абсолютно глупый, но как убрать эту цикличность. Ардуинку только постигаю, но очень интересно. Нагрузка развязана на мосфет модуле. Скетч ниже, заранее спасибо.
C++:
const int loadPin = 5; // Пин, к которому подключена нагрузка
const int controlPin = 8; // Пин для управления включением/выключением нагрузки
int brightness = 0; // Переменная для управления яркостью нагрузки
void setup() {
pinMode(loadPin, OUTPUT); // Устанавливаем пин на вывод
pinMode(controlPin, INPUT); // Устанавливаем пин на ввод
}
void loop() {
if (digitalRead(controlPin) == LOW) {
// Включение нагрузки с плавным повышением яркости до 50%
if (brightness < 128) {
brightness += 2;
analogWrite(loadPin, brightness);
delay(80);
}
} else {
// Выключение нагрузки
analogWrite(loadPin, 0);
brightness = 0; // Сбрасываем значение яркости
}
}
Изменено: