Ардуино регулировка яркости светодиода

Управление светодиодами с Arduino

Обычные светодиоды

Светодиод – простейший индикатор, который можно использовать для отладки кода: его можно включить при срабатывании условия или просто подмигнуть. Но для начала его нужно подключить.

Подключение светодиода

Светодиод – это устройство, которое питается током, а не напряжением. Как это понимать? Яркость светодиода зависит от тока, который через него проходит. Казалось бы, достаточно знания закона Ома из первого урока в разделе, но это не так!

2.5 вольта, у синих, зелёных и белых

3.5 вольта. Более точную информацию можно узнать из документации на конкретный светодиод. Если документации нет – можно пользоваться вот этой табличкой, тут даны минимальные значения:

Яркость светодиода нелинейно зависит от тока, поэтому “на глаз” при 10 мА яркость будет такая же, как на 20 мА, и величину сопротивления можно увеличить. А вот уменьшать нельзя, как и подключать вообще без резистора. В большинстве уроков и проектов в целом для обычных светодиодов всех цветов ставят резистор номиналом 220 Ом. С резистором в 1 кОм светодиод тоже будет светиться, но уже заметно тусклее. Таким образом при помощи резистора можно аппаратно задать яркость светодиода.

Как определить плюс (анод) и минус (катод) светодиода? Плюсовая нога длиннее, со стороны минусовой ноги бортик чуть срезан, а сам электрод внутри светодиода – крупнее:

Мигаем

Мигать светодиодом с Ардуино очень просто: подключаем катод к GND, а анод – к пину GPIO. Очень многие уверены в том, что “аналоговые” пины являются именно аналоговыми, но это не так: это обычные цифровые пины с возможностью оцифровки налогового сигнала. На плате Nano пины A0-A5 являются цифровыми и аналоговыми одновременно, а вот A6 и A7 – именно аналоговыми, то есть могут только читать аналоговый сигнал. Так что подключимся к A1, настраиваем пин как выход и мигаем!

Как избавиться от delay() в любом коде я рассказывал вот в этом уроке.

Мигаем плавно

Как насчёт плавного управления яркостью? Вспомним урок про ШИМ сигнал и подключим светодиод к одному из ШИМ пинов (на Nano это D3, D5, D6, D9, D10, D11). Сделаем пин как выход и сможем управлять яркостью при помощи ШИМ сигнала! Читай урок про ШИМ сигнал. Простой пример с несколькими уровнями яркости:

Подключим потенциометр на A0 и попробуем регулировать яркость с его помощью:

Как вы можете видеть, все очень просто. Сделаем ещё одну интересную вещь: попробуем плавно включать и выключать светодиод, для чего нам понадобится цикл из урока про циклы.

Плохой пример! Алгоритм плавного изменения яркости блокирует выполнение кода. Давайте сделаем его на таймере аптайма.

Читайте также:  Регулировка клапанов производится на горячую или холодную

Теперь изменение яркости не блокирует выполнение основного цикла, но и остальной код должен быть написан таким же образом, чтобы не блокировать вызовы функции изменения яркости! Ещё одним вариантом может быть работа по прерыванию таймера, см. урок.

Ещё один момент: если подключить светодиод наоборот, к VCC, то яркость его будет инвертирована: 255 выключит светодиод, а 0 – включит, потому что ток потечет в другую сторону:

Светодиодные ленты

Светодиодная лента представляет собой цепь соединённых светодиодов. Соединены они не просто так, например обычная 12V лента состоит из сегментов по 3 светодиода в каждом. Сегменты соединены между собой параллельно, то есть на каждый приходят общие 12 Вольт. Внутри сегмента светодиоды соединены последовательно, а ток на них ограничивается общим резистором (могут стоять два для более эффективного теплоотвода):

Таким образом достаточно просто подать 12V от источника напряжения на ленту и она будет светиться. За простоту и удобство приходится платить эффективностью. Простая математика: три белых светодиода, каждому нужно по

3.2V, суммарно это 9.6V. Подключаем ленту к 12V и понимаем, что 2.5V у нас просто уходят в тепло на резисторах. И это в лучшем случае, если резистор подобран так, чтобы светодиод горел на полную яркость.

Подключаем к Arduino

Здесь всё очень просто: смотрите предыдущий урок по управлению нагрузкой постоянного тока. Управлять можно через реле, транзистор или твердотельное реле. Нас больше всего интересует плавное управление яркостью, поэтому продублирую схему с полевым транзистором:

Конечно же, можно воспользоваться китайским мосфет-модулем! Пин VCC кстати можно не подключать, он никуда не подведён на плате.

Управление

Подключенная через транзистор лента управляется точно так же, как светодиод в предыдущей главе, то есть все примеры кода с миганием, плавным миганием и управление потенциометром подходят к этой схеме.

Про RGB и адресные светодиодные ленты мы поговорим в отдельных уроках.

Питание и мощность

Светодиодная лента потребляет немаленький ток, поэтому нужно убедиться в том, что выбранный блок питания, модуль или аккумулятор справится с задачей. Но сначала обязательно прочитайте урок по закону Ома! Потребляемая мощность светодиодной ленты зависит от нескольких факторов:

Лента всегда имеет характеристику мощности на погонный метр (Ватт/м), указывается именно максимальная мощность ленты при питании от номинального напряжения. Китайские ленты в основном имеют чуть меньшую фактическую мощность (в районе 80%, бывает лучше, бывает хуже). Блок питания нужно подбирать так, чтобы его мощность была больше мощности ленты, т.е. с запасом как минимум на 20%.

Важные моменты по току и подключению:

Источник

Эксперимент № 3. ШИМ. Управление яркостью светодиода

Введение. Понятие ШИМ

Широко-импульсная модуляция (сокращенно ШИП) — это техника, используемая для преобразования аналогового сигнала в цифровой. Ведь компьютер не может выдавать аналоговый сигнал: выходы цифровой техники могут принимать только одно из двух значений – например, 0V или 5V. Поэтому используется счетчик высокой точности для кодирования аналогового сигнала в ШИМ-сигнал, которые – уже цифровой, поскольку в любой момент времени он принимает значение либо 5V (ВКЛ), либо 0V (ВЫКЛ). Напряжение подается на аналоговую нагрузку (например, светодиод, или сервопривод) в виде повторяющейся последовательности ВКЛ и ВЫКЛ. Получаемое выходное напряжение вычисляется по продолжительности сигналов ВКЛ и ВЫКЛ, по следующей формуле:

Читайте также:  Митсубиси аутлендер регулировка холостого хода

Выходное напряжение = (Время ВКЛ / время импульса) * максимальное напряжение.

Взгляните на рисунок ниже для лучшего понимания.

ШИМ имеет множество применений, например:

ШИМ имеет 3 параметра:

У Ардуино 6 портов, поддерживающие ШИМ: это цифровые пины 3, 5, 6, 9, 10 и 11.

В предыдущем примере мы подключили LED к цифровому пину. Теперь мы будем менять его яркость с помощью ШИМ-сигнала.

Часть 1. Управление яркостью светодиода

Необходимые компоненты

Схема

Соберем вот эту схему:

Обратите внимание, что мы подключаем LED к цифровому пину 11, которые поддерживает ШИМ. Если подключить к пину 12, то желаемого результата мы не получим.

Скетч

Результат

Часть 2. Управление яркостью с помощью потенциометра

Необходимые компоненты

Схема

Добавим на схему потенциометр:

Среднюю ногу потенциометра мы подключаем к аналоговому входу A0.

Скетч

Результат

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

Объяснение

В программе мы считываем аналоговое значение, задаваемое потенциометром, и применяем его к цифровому ШИМ порту, к которому подключен светодиод. В соответствии с изменением ШИМ-сигналом, меняется и яркость светодиода.

Обратите внимание, что максимальное значение для порта ШИМ – это 255, а аналогового порта – 1024. Поэтому считанное значение приходится делить на 4.

Заключение

В этом примере мы показали как использовать ШИМ, изменять напряжение на цифровом выходе, использовать потенциометр для управления нагрузкой.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Ардуино регулировка яркости светодиода

В данной серии уроков, мы поможем вам разобраться с этим вопросом. И подробно расскажем о всех тонкостях данного процесса.

Есть большое количество способов реализации подобной идеи. Мы расскажем вам о трех основных, это:

Суть метода хотелось бы пояснить на небольшом, но очень актуальном примере:

Имеется кинотеатр. Во время всего сеанса, свет в зале выключен, и зрители смотрят фильм. Как только фильм заканчивается, по сути, должен включаться свет. Если он включится резко, то это очень негативно скажется на зрении зрителей. Поэтому в большинстве кинотеатров, такая ситуация предусмотрена. После сеанса, свет включается плавным нарастанием яркости. Вот чтобы достичь такого эффекта, с помощью Arduino, или других цифровых устройств, рациональнее будет использовать изменение яркости программным методом.

Конечно, данный пример не отображает всех аспектов и вариантов использования данного метода. Но для примера, я думаю, этого достаточно.

Теперь давайте подробнее разберем данный способ.

В основе метода лежит широтно-импульсная модуляция, она же ШИМ. Если вы не сталкивались с этим понятием, или не понимаете его суть, то советую для начала прочитать эту статью.

Для этого урока понадобятся следующие компоненты:

Подключаем светодиоды к Arduino по схеме представленной ниже:

Та же самая схема, только в другом представлении:

Вы можете использовать любой пин Arduino, в номере которого имеется знак тильды «

«. Именно в этих пинах может использоваться ШИМ.

Читайте также:  Регулировка колдуна пассат б3

Теперь, когда схема собрана. Перейдем в программную часть.

Суть метода состоит именно в том, что алгоритм изменения яркости светодиода будет заложена в программе, и в процессе выполнения, мы уже никак не сможем влиять на работу нашего устройства.

Открываем программу Arduino IDE и пишем следующий код:

Таким образом, с помощью данной функции, мы можем контролировать яркость нашего светодиода, подавая значения от 0 (минимум 0В) до 255 (максимум 5В).

Если пробежаться по алгоритму, то мы видим, что в начале мы выставляем значение уровня нашего пина равное 20.

Потом, через небольшую задержку (400мс),

мы изменяем уровень на 50,

и потом через задержку до уровня 255.

После того, как уровень стал равен 255 (соответствующее максимальному значению 5В),

происходит задержка, после чего программа переходит в начало. И все повторяется снова.

Видео работы такого устройства:

Если посмотреть внимательно, то переходы с одного уровня на другой, сопровождаются небольшими скачками. Есть несколько способов, чтобы избавиться от такого эффекта.

Первый пункт, в связи с нерациональностью, мы использовать не будем. Перейдем сразу ко второму способу.

Мы можем добавить в наш код еще несколько подобных строк:

с разными значениями уровня. Чем больше таких уровней, тем более плавный будет переход.

Это все конечно же хорошо. Но сколько таких строк мы добавим? Пять? Десять? Этот способ нам не подходит, хотя бы потому, что большое количество таких строк, повлечет за собой трату памяти нашего контроллера. И не всегда эффект от такого способа будет хороший.

Поэтому делаем следующее:

добавьте следующий код в новом проекте Arduino IDE (или измените старый):

Как вы видите, заместо старых строк, в программе, появилось несколько новых, значительно отличающихся по количеству:

Давайте же разберемся что это за строки.

В общем виде цикл for записывается так:

И так далее. До тех пор, пока i не станет равно 256. Условие станет ложным (256

Давайте же посмотрим, как будет работать наше устройство с таким алгоритмом:

Как мы видим, применение цикла привело к тому, что нарастание яркости стало очень плавным и приятным на взгляд. А также, уменьшило объем занимаемой памяти микроконтроллера (что в больших проектах очень важно).

Вы можете немного поэкспериментировать со значениями задержки, с шагом цикла, а также можете добавить несколько дополнительных светодиодов и создать свой алгоритм, с использованием данного метода.

Задание для самостоятельного выполнения:

Задание к данному уроку будет только одно: постарайтесь сделать так, что при достижении максимального значения уровня яркости (255 5В), светодиод начал плавно затухать.

Это можно реализовать добавлением еще одного такого цикла, только с другими параметрами.

Третий урок проекта «Arduino с нуля» подошел к концу. Надеюсь тема была для вас полезной, и вы узнали что-нибудь новое. Также надеюсь, что при выполнении задания у вас не возникнет вопросов и вы справитесь самостоятельно.

Если же что-нибудь не будет получаться, или у вас появятся какие-либо вопросы, не стесняйтесь, и оставляйте их в комментариях или же на форуме.

Если Вам понравился наш урок, поделитесь им с друзьями.

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Настройки и регулировки