Пример плавного “розжига” и затухания светодиода, используя ШИМ (широтно-импульсную модуляцию) или по-английски PWM (pulse-width modulation). Данный пример использует функцию AnalogWrite.
Понадобятся: плата Arduino Uno или другая, светодиод, резистор 220ohm.
Подключение: анод светодиода (длинная ножка, положительная) подключается к 9 выходу через резистор 220 ohm. Катод (короткая, отрицательная ножка) – к земле GND.
Код
int led = 9; // номер аналогового выхода к которому подключен светодиод
int brightness = 0; // яркость, начинаем с 0
int fadeAmount = 5; // скорость прирастания/убываения яркости. Значение может быть отрицательным
void setup() {
pinMode(led, OUTPUT); //объявляем пин 9 как выходной
}
//главный цикл
void loop() {
// устанавливаем текущие значение выходу со светодиодом
analogWrite(led, brightness);
// меняем приращиваем или убавляем яркость
brightness = brightness + fadeAmount;
// при достижение границы значений меняем знак,
//чтобы сменить прищанение яркости убыванием
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// ждем 30 миллисекунд
delay(30);
}
См. также простой BLINK
Пример без delay в разработке, ждём…