Светодиод

Цель работы

Знакомство с работой АЦП и ШИМ.

Задачи работы

  1. Разработать скетч для управления яркостью светодиода при помощи потенциометра через Arduino.
  2. Собрать схему со светодиодом и потенциометром на макетной плате.

Инструменты для выполения работы

  1. Компьютер с подключением к сети Internet.
  2. Плата Arduino с USB выходом (например, Arduino Uno).
  3. Макетная плата для беспаечного монтажа.
  4. Светодиод.
  5. Резистор на 220 Ом.
  6. Потенциометр.
  7. Провода.

Теоретическая часть

Потенциометр - это переменный резистор с регулируемым сопротивлением. При вращении ручки потенциометра его сопротивление меняется от 0 до некоторого максимального значения.
АЦП (аналогово-цифровой преобразователь) - микросхема, преобразующая аналоговое значение напряжения в цифровое.
На платах Arduino присутствует несколько встроенных АЦП, доступных программно с помощью функции analogRead(), принимающей номер порта АЦП (A0 - A5). Так как в Arduino используются 8-разрядные АЦП, на выходе получаются значения от 0 до 1024 для напряжения на входе, соответственно, от 0 до 5 В.
ШИМ (PWM, широтно-импульсная модуляция) - процесс генерации прямоугольных импульсов с меняющейся шириной импульса.



T - период ШИМ (в Arduino используется 490 Гц, иногда бывает 980 Гц)
t - длительность импульса, изменяется в пределах от 0 до T
Отношение t/T называется скважностью импульса. На микроконтроллерах Arduino ШИМ доступна на некоторых цифровых пинах, при этом запускается она при помощи функции analogWrite(). Функции передается параметр, принимающий значения от 0 до 255, которых регулирует длительность импульса от 0 до T, и соответственно скважность импульса от 0 до 1.

ШИМ
Скважность импульса

Выполнение работы

Создаем новый скетч и сохраняем его с названием LedBrightness. Проверяем, что выбрана правильная плата и порт.
Собираем установку, подключаем светодиод к порту платы с поддержкой ШИМ (обозначены символом "~"), например к 11-у порту. Потенциометр подключает крайними контактами к Vcc и Gnd на плате, средним контактом к аналоговому входу, например, к A0.

Для использования ШИМ и АЦП на Arduino не нужна дополнительная настройка пинов, единственное, что нужно - в функции loop считывать значение с аналогового входа и устанавливать соответствующую скважность импульса.

analogWrite(11,analogRead(A0)/4);

Загружаем скетч и проверяем, что при вращении ручки потенциометра яркость светодиода изменяется от 0 до некоторого максимального значения.

Задание: Разработать установку на базе RGB-светодиода и потенциометра для плавного изменения цвета светодиода по шкале оттенков модели HSV (см. здесь)