Fade
Демонстрирует использование функции analogWrite () для включения и выключения светодиода. analogWrite использует широтно-импульсную модуляцию (ШИМ) , включая и выключая цифровой выход очень быстро, чтобы создать эффект затухания.
плата Arduino
макетная плата
светодиод
резистор 220 Ом
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
analogWrite(9, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
delay(30);
}
Демонстрирует использование функции analogWrite () для включения и выключения светодиода. analogWrite использует широтно-импульсную модуляцию (ШИМ) , включая и выключая цифровой выход очень быстро, чтобы создать эффект затухания.
Необходимое оборудование
Цепь
Подключите анод (длинная, положительная нога) вашего светодиода на цифровой выход 9 на Arduino через 220 Ом. Подключите катод (короткая, отрицательная нога) непосредственно к земле.
Схема
Код
После объявления контакта 9, чтобы был вашимledPin
, нечего делать в функции setup()кода. В функции AnalogWrite ()
, которая будет использоваться в основном цикле вашего кода требуется два аргумента: один говорит функции какой выход использовать, и один указывает значение ШИМ для записи.
Для того, чтобы менять состояние светодиода с выключенного на включенный, постепенно изменяйте значение ШИМ от 0 (полностью выключен) до 255 (включен), а затем обратно до 0 для завершения цикла. В скетче ниже, значение ШИМ устанавливается с помощью переменной brightness. Каждый цикл brightness увеличивается на значение переменной
fadeAmount
.
Если brightness достигает среднего значения (0 или 255), то
fadeAmount
меняется свое значение на противоположное. Другими словами, если fadeAmount
равно 5, то он устанавливается в -5.analogWrite ()
может изменить значение ШИМ очень быстро, поэтому задержка в конце скетча позволяет нам заметить это изменение. Попробуйте изменить значение задержки и посмотреть, как он меняет программу.
int brightness = 0;
int fadeAmount = 5;
int fadeAmount = 5;
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
analogWrite(9, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
delay(30);
}
Комментариев нет:
Отправить комментарий