В этом проекте вы создадите светорегулятор типа "Диммер", применив потенциометр для управления яркостью светодиода.
Нам понадобится
- Плата Arduino
- Макетная плата
- Перемычки
- Светодиод
- Потенциометр с сопротивлением 50 кОм
- Резистор с сопротивлением 470 Ом
Потенциометр представляет собой переменный резистор с рукояткой, поворачивая которую вы изменяете сопротивление потенциометра. Такие переменные резисторы широко используется в электрических устройствах, например, для управления уровнем громкости в звуковой аппаратуре. В этом проекте используется потенциометр с сопротивлением 50 кОм.

Принцип работы
Потенциометр управляет постоянным аналоговым сигналом. Люди воспринимают мир в аналоговом режиме; все, что мы видим и слышим — это непрерывная передача информации нашим органам чувств. Этот непрерывный поток и есть аналоговые данные. С другой стороны, цифровая информация представляет аналоговые данные, используя исключительно числа. Чтобы принять непрерывные аналоговые данные, поступающие от потенциометра, компьютер Arduino должен представить сигнал как серию дискретных чисел — в данном случае, напряжения. Центральный контакт потенциометра посылает сигнал на аналоговый вход платы Arduino, любой контакт с метками от АО до А5, для считывания значения.
По сути, светодиод просто включается и выключается, но это происходит так быстро, что благодаря компенсации наши глаза видят постоянное свечение светодиода, но с разным уровнем освещенности. Этот эффект известен под термином инерция зрения.
Чтобы создать этот эффект, в компьютере Arduino используется технология, называемая широтно-импульсной модуляцией (ШИМ). Arduino создает импульсы, очень быстро включая и выключая питание. Длительность включения и отключения питания (так называемая ширина импульса) в цикле определяет средний уровень выхода, и, изменяя значение ширины импульса, устройство может симулировать значения напряжения в диапазоне от 5 до 0 В (т.е. от включенного до отключенного состояния). Если питание от Arduino подается в течение половины времени и отключается также на половину времени, средний уровень выхода составит 2,5 В, т.е. по центру между 0 и 5 В. Если сигнал подается 80% всего времени, а отключен в течение 20%, средний уровень выхода составит 4 В, и т.д. Вы можете изменять сигнал, который, в свою очередь, меняет ширину импульса, поворачивая ручку потенциометра влево или вправо, увеличивая или уменьшая сопротивление.
Используя этот метод, вы можете изменить напряжение, посылаемое на светодиод, и сделать его свечение более тусклым или ярким, соответствующим аналоговому сигналу от потенциометра. Только контакты 3,5, б, 9,10 или 11 платы Arduino поддерживают ШИМ. На рис. 2.1 показаны примеры работы ШИМ в виде формы сигнала.



Рисунок 2.1: Широтно-импульсная модуляция в виде формы сигнала
Сборка
1. Установите потенциометр на макетную плату и подключите центральный контакт потенциометра к контакту АО платы Arduino. Подключите один из внешних контактов потенциометра к положительной шине 5 В, а другой — к заземлению (GND) на макетной плате (не имеет значения, в каком порядке подключены внешние контакты потенциометра; эти инструкции отражают вариант подключения, продемонстрированный в этой проекте), как показано на рис. 2.2.
2. Установите светодиод на макетную плату. Подключите ножку анода (длинную) к контакту 9 платы Arduino через резистор с сопротивлением 470 Ом, а ножку катода (короткую) — к контакту GND, как показано на рис. 2.3.



3. Загрузите в память Arduino код скетча, приведенный в разделе «Скетч» далее в этом проекте.
4. Поворачивайте ручку потенциометра для управления яркостью светодиода.
У этого проекта есть множество потенциальных возможностей для применения: вы можете сгруппировать несколько светодиодов вместе, чтобы создать регулируемый фонарик, ночник, подсветку для выставочного стенда или витрины либо какое-нибудь другое устройство с приглушенным светом.
Скетч
При работе этого скетча контакт АО настроен на работу с потенциометром, а контакт 9 служит выводом для питания светодиода. Затем запускается цикл, который постоянно считывает значение с потенциометра и использует его для установки напряжения, подаваемого на светодиод. Напряжение колеблется в пределах от 0 до 5 В, согласно значению которого устанавливается соответствующая яркость светодиода.
int potPin = АО; // Контакт аналогового входа, подключенный к потенциометру int potValue =0; // Значение, считываемое с потенциометра int led =9; // Контакт 9 (подключен к светодиоду) поддерживает ШИМ // Выполняется однократно в начале программы void setup () { pinMode(led, OUTPUT); // Перевод контакта 9 в режим вывода } // Непрерывное выполнение void loop() { potValue = analogRead(potPin); // Чтение значения потенциометра с контакта АО analogWrite(led, potValue/4); // Отправка значения потенциометра на светодиод для управления яркостью с помощью ШИМ delay(10) ; // Ожидание 10 мс }
Теги: