Урок 5. Управляем яркостью светодиода

Проект: Светдиод, меняющий яркость. 


Сам проект сегодня будет не сложный, но вы познакомитесь с одним важным понятием - ШИМ (Широтно импульсная модуляция). 


Вы уже наверняка обратили внимание, что некоторые цифровые ножки ардуино имеют вот такой значек ~ перед номером пина.  А рядом подпись PWM~. Давайте разберемся, что это всё означает. 


Цифровой или Аналоговый сигнал?


Вы включили и выключили свет с кнопки - это цифровой/digital сигнал. У него есть только 2 положения - ВКЛ (HIGH или 1) и ВЫКЛ (LOW или 0). С Ардуино подается либо 5 Вольт (максимум) либо 0 Вольт (ничего). 

Вы прибавили - убавили громкость - это Аналоговый сигнал. Здесь можно варьировать в широком диапазоне. 






На плате Ардуино аналоговые ножки работают только на вход (на прием сигнала из внешнего мира), мы с ними познакомились в прошлом уроке, когда подключали фоторезистор и значение варьируется от 0 до 1023.

Ножки ШИМ работают только на выход (выдают команду с ардуино) и значение варьируется от 0 до 255


Задачки на проверку: 

Куда подключим кнопку?

1) мы будем принимать сигнал, а это ВХОД.

2) Интересует только 2 положения - ВКЛ и ВЫКЛ, это цифра.

Значит подключаем на цифровой пин.

Куда подключаем моторчик? 

1) мы будем выдавать сигнал, а это ВЫХОД.

 2) скорость нас не интересует, просто ВКЛ на максимум и ВЫКЛ 

Значит подключаем на цифровой пин.

3) а если скоростью нужно управлять? 

Значит подключаем на ~ШИМ.

Куда подключим датчик цвета? 

1) мы будем принимать сигнал, а это ВХОД.

2) уровень сингала будет постоянно варьироваться в широком диапозоне.

Значит подключаем на Аналог.

С задачками справились, переходим к выполнению задания! 


Подключаем светодиод на ШИМ и учим его медленно включаться и медленно гаснуть.



Совственно код программы в графическом редакторе и на языке СИ:  


Обратите внимание, мы использовали только 5 значений ШИМ канала для изменения яркости светодиода, минимум 0, 64, 128,191, максимум 255


После того, как задавали значение, ставили паузу (в языке СИ delay (милисекунд)).


Что будет если паузы не поставить? Попробуйте в значении пауза (=ждать, = wait) поставить 0 секунд. 


Как сделать, чтобы светодиод менял яркость еще плавнее? 


Попробуйте добавить промежуточные значения между 0, 64, 128,191, 255.