Меню

Как регулировать яркость светодиода на arduino



Включение светодиода кнопкой Ардуино

Ардуино кнопка и светодиод ► рассмотрим несколько примеров: включение и выключение светодиода от кнопки, управление яркостью и мигание светодиода Arduino.

Включение светодиода кнопкой Ардуино можно осуществить различными способами — можно управлять светодиодом одной или двумя кнопками, а можно плавно менять яркость светодиода. Рассмотрим, все варианты подключения кнопки и светодиода к плате Arduino Uno с примерами программ. Рассмотрев представленные скетчи, вы сможете использовать в своих проектах тактовые кнопки для управления Ардуино.

Подключение кнопки и светодиода к Ардуино


Включение и выключение светодиода кнопкой Ардуино производится с помощью подключения одной тактовой кнопки к цифровому пину без подтягивающего резистора. Дело в том, что платы Arduino имеют встроенные резисторы, которыми можно управлять. Для этого следует использовать в pinMode() параметр INPUT_PULLUP, которая сконфигурирует пин на вход с подтягивающим резистором.

Обратите внимание, что при использовании INPUT_PULLUP происходит подтяжка цифрового входа к 5 вольтам, поэтому значение входящего сигнала будет инвертирован. То есть, при отпущенной кнопке, которая подключена к заземлению — GND, на цифровом входе будет высокий сигнал. При нажатии на кнопку — на входе, который сконфигурирован с помощью INPUT_PULLUP, будет низкий сигнал.

Как подключить кнопку и светодиод к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • светодиод;
  • 2 резистора 220 Ом;
  • 2 тактовых кнопки;
  • провода «папа-папа».

Схема для включения/выключения светодиода кнопкой от Ардуино

Для переключения светодиода кнопкой Ардуино соберите схему, как на изображении выше. Обратите внимание, что тактовая кнопка на макетной плате подключена к микроконтроллеру без подтягивающего резистора. Пин 2 подключен к 5V через встроенный резистор, поэтому при отпущенной кнопке на входе пине 2 будет высокий уровень сигнала, а при нажатии кнопки будет низкий уровень.

Скетч. Управление светодиодом Ардуино через кнопку

Пояснения к коду:

  1. boolean — это глобальная переменная Ардуино, которая может принимать всего два значения – true (истина) и false (ложь);
  2. задержка delay(10); в программе позволяет избежать «дребезг контактов» кнопки и исключить ложное срабатывание.

Схема управления светодиодом двумя кнопками от Ардуино

Скетч. Управление двумя кнопками одним светодиодом

Пояснения к коду:

  1. данный пример программы позволяет включать светодиод нажатием одной кнопки и выключать светодиод нажатием второй кнопки;
  2. задержка Ардуино delay(10); позволяет избежать «дребезг контактов» кнопки и исключить возможность ложного срабатывания.

Следующий пример тоже потребует для подключения к Ардуино две кнопки, два светодиода, как на предыдущей схеме. Но вместо простого включения/выключения диода, мы будем увеличивать и уменьшать яркость светодиода с помощью ШИМ сигнала микроконтроллера. Загрузите пример программы для «Светодиод и кнопка Ардуино ШИМ», чтобы получить понятие о принципе работы кнопки с Arduino Uno.

Скетч. Управление яркостью светодиода кнопкой Ардуино

Пояснения к коду:

  1. для подключения светодиода следует использовать пин с ШИМ модуляцией;
  2. начальное значение яркости int brightness равен ста, в программе прирост и уменьшение яркости (20) можно поменять по своему усмотрению.

Заключение. Мы рассмотрели сразу несколько примеров для управления светодиодом Ардуино с помощью кнопки. Вы узнали, что светодиодом можно управлять с помощью одной кнопки, или производить включение/выключение двумя кнопками. Кроме того, можно менять яркость с помощью кнопки и ШИМ сигнала. Все рассмотренные примеры можно использовать в различных проектах на Arduino для начинающих.

Источник

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

В этом уроке мы узнаем, как правильно выполнить подключение светодиода к плате Ардуино и как организовать управление им с помощью скетча. Для работы с проектами вам потребуется плата Arduino Uno, Nano или Mega, а также установленная на компьютер программа Arduino IDE. Если у вас нет возможности собрать схему своими руками, можно воспользоваться встроенными светодиодами на плате контроллера. Главное, чтобы была возможность подключиться к

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

Светодиод – один из самых распространенных электронных компонентов, применяемых в электротехнических проектах. И естественно то, что любые DIY проекты начинаются с примеров работы со светом – мигание, мерцание, переключение. Существует огромное количество светодиодов разных вариантов и моделей в разных корпусах и с различными характеристиками. Более подробно мы писали об этом в статье с описанием принципа работы светодиода. Мы с вами будем использовать самые простые и дешевые компоненты, которые можно без труда купить в любом интернет-магазине.

Правила подключения

Главное, что нам нужно знать о светодиодах (кроме того, что они светятся) – что это полупроводниковый прибор. Свет в виде испускаемых фотонов возникает в специальном слое (pn – переходе), когда через него проходит определенный ток. Принцип работы светодиода показан на следующей картинке.

При подключении светодиодов важно знать два главных правила:

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

Полярность светодиодов

Первое правило легко соблюдать, если знать, где у светодиода минус, а где плюс. Тут на помощь приходят правила маркировки. Мы смотрим на ножки и видим, что они разного размера. Более длинная ножка означает плюс. Если нет возможности сравнить длину или кто-то уже до вас отрезал часть ножек, мы ощупываем корпус (визуально определить будет сложно) – с одной из сторон корпус слегка обрезан (скошен), с этой стороны находится минус.

Читайте также:  Когда делать регулировку клапанов ваз 2107

Полярность светодиодов

Что будет, если перепутать ножки местами и поменять полярность подключения? К счастью – ничего. Ничего не сгорит, но и светиться тоже ничего не будет. Диод, включенный неправильно, просто размыкает цепь. Естественно, до определенного предела, т.к. если мы подадим достаточно большой ток, то рано или поздно случится пробой и устройство перестанет работать совсем.

Ограничение по току

Правило ограничения по току тоже легко выполнить. Нужно лишь получить в спецификации к вашему светодиоду значение максимального тока для данной модели и добавить в схему сопротивление, обеспечивающее нужный ток в цепи. Все это легко рассчитывается с помощью закона Ома и многочисленных калькуляторов, доступных в интернете. Чтобы не усложнять процесс лишними расчетами (это мы сделали в другой статье) просто даем итоговый результат для работы с Ардуино.

В наших первых проектах для самых распространенных светодиодов, доступных в стартовых комплектах, мы будем использовать резисторы 220 Ом. Если вы добавите к схеме резистор большего номинала, то ничего страшного не произойдет – просто диод будет светить не так ярко.

Схема подключения светодиода

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

Схема подключения светодиода

Может возникнуть вопрос, как соединить провода. Мы можем держать их руками и зубами, можно выполнить скрутку, можно спаять. Но самым простым и довольно надежным способом соединения является использование макетных плат. Мы писали о них в статье о платах прототипирования.

Схема подключения к плате Arduino Nano или Uno

Чтобы подключить светодиод к Ардуино надо понять, где на этой плате будет плюс, где минус. Ведь светодиод – устройство электрическое, для его работы нужна электрическая цепь с плюсом и минусом. Первое, что можно сделать – это подключить питание к выводу 5В платы Uno. Свет будет гореть, но таким устройством управлять с помощью скетча невозможно. Свет будет гореть до тех пор, пока включено питание. Конечно, можно выключать питание и уводить плату в режим сна в программе, но это уже тема отдельной статьи.

Подключение светодиода напрямую к пину питания Ардуино

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

Начнем с отрицательных полюсов. Все минусы платы обозначены одним словом – GND, сокращенное от ground – земля («земля» или «корпус» – так часто называют общую линию для электрической схемы). На плате Arduino Uno или Nano можно найти три таких контакта: возле 13 пина и на другой стороне, в зоне разъемов питания.

Все остальные цифровые или аналоговые пины (с номерами или обозначениями A0-A5) могут быть и плюсами и минусами. Если мы укажем в программе, что на нужный нам порт надо подать напряжение (высокий уровень сигнала), то он становится плюсом. Если укажем низкий уровень сигнала, то пин станет «минусом». Не будем вдаваться в тонкости и расчеты, наша задача пока понять основы.

Пошаговая инструкция

Итак, нам нужно подключить светодиод к плате. Для этого мы соединяем длинную ножку к плюсу, т.е. к тому участку схемы, который ведет к цифровому или аналоговому разъему платы. Но делаем это не сразу, а через резистор, который уже потом подключается к пину 13. Короткую ножку (минус) подключаем к минусу – к пину GND. Вот так это выглядит на схеме.

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

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

Для упрощения работы, подключите светодиод к 13 пину по схеме, представленной на рисунке. Собрав схему и включив питание, мы можем увидеть, как наш светодиод замигает уже при старте. Если в плате загружен тот же начальный скетч маячка, то после инициализации светодиод будет мигать и увидим, что теперь он мигает с частотой 1 раз в секунду. О том, как загрузить скетч в ардуино, можно прочитать в нашей статье о проектах для начинающих.

Встроенный светодиод в Arduino Uno и Nano

На самом деле нам не обязательно знать о нюансах работы со светодиодами для начала практической деятлеьности. Первые эксперименты вполне можно провести со встроенным светодиодом платы Ардуино. В подавляющем большинстве плат он будет подключен к пину 13. Вы можете без труда найти светящиеся элементы платы – они загораются и мигают разным цветом при включении. Это и есть встроенные светодиоды.

Далеко не все “лампочки на плате” доступны нам для управления из скетча. Некоторые из них служат индикаторами обмена данными через те или иные протоколы (например, UART), другие информируют о включении питания и режиме работы платы. Светодиод, присоединенный к пину 13 платы может загореться и погаснуть при включении платы, а затем его работа определяется встроенным скетчем.

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

На некоторых вариантах плат количество источников света ограничено и 13 пин оказывается не подключенным. Это делается ради экономии потребляемой электроэнергии, ведь led-лампочка всегда приводит к повышенному потреблению электричества. В некоторых проектах, требующих увеличенного времени работы от аккумуляторов, “прожорливые лампочки” приходится выпаивать принудительно.

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

Для подключения нескольких светодиодов к ардуино нужно просто подключить каждый из них к своему цифровому порту по той же схеме. Например, для создания проекта «Мигалка» можно взять два светодиода красного и синего цвета, подключив через сопротивление их положительные (длинные ножки)контакты к 13 и 12 пину соответственно. Короткие ножки подключаются к минусу – земле.

Схема подключения светодиодов проекта Мигалка

Мы уже знаем, что на плате нас дожидаются три разъема с таким обозначением («GND»), можно подключать к любому. Если разъемов питания будет не хватать, у нас есть три варианта.

  • Сформировать нужные уровни питания на свободных пинах. Например, подав в скетче низкий уровень сигнала на пин 5, мы получим на этом разъеме необходимый нам «минус».
  • Использовать макетную плату, на которой есть отличные варианты для раздачи «плюсов и минусов» через общие линии питания (смотрите статью на нашем сайте).
  • Использовать специальные платы расширения Sensor Shield, у которых для каждого пина отдельно выводятся пины с питанием и землей.

Точно так же вы сможете подключить и следующие светодиоды, приступив к проектам светофор или светодиодная лента.

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

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

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

Включение и выключение светодиода в Ардуино

Включение светодиода произойдет в тот момент, когда мы подадим на пин, к которому он подключен, высокий уровень сигнала (напряжение). За это в Ардуино отвечает функция digitalWrite со вторым параметром HIGH. Например, для светодиода, подключенного к пину 12 команда будет выглядеть так: digitalWrite (12, HIGH);

Чтобы выключить светодиод, мы используем ту же команду, но с параметром LOW: digitalWrite(12, LOW). Если мы вызовем первую команду, а потом чрез какой-то промежуток времени вторую, то у нас светодиод сначала загорится, а потом потухнет. Зациклив включение и выключение, мы получим постоянно включающийся и выключающийся мигающий маячок.

Бывают ситуации, когда светодиод горит не очень ярко и непонятно, что тут пошло не так. На самом деле нужно в первую очередь проверить, не забыли ли вы сконфигурировать пин в качестве выходного. Это делается добавлением функции pinMode (обычно в блоке setup()). Для нашего варианта функция будет выглядеть так: pinMode(12, OUTPUT);

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

Мы можем не только включать или выключать свет, но и управлять его яркостью. Для этого используется специальная технология с красивым названием ШИМ. Подключившись к пинам контроллера, поддерживающим ШИМ, можно регулировать интенсивность свечения с помощью функции analogWrite(). Мы должны указывать ей в качестве параметров номер пина и значение из диапазона от 0 до 255. Чем больше число, тем ярче будет светить лампочка. Например, для пина 3 пример будет выглядеть так: analogWrite(3, 255) или analogWrite(3, 100). В первом случае яркость будет максимально возможная, во втором – гораздо меньше.

Заключение

Подключить светодиод к своей схеме на Ардуино – несложное занятие. Просто соединяем ножки в правильной последовательности и не забываем о токоограничивающем резисторе. Главное преимущество Ардуино в таких схемах – возможность программного управления светодиодом. Мы просто пишем в программе нужный алгоритм, загружаем его в контроллер и плата включает и выключает нужные нам пины.

Можно подключать несколько светодиодов, но следить, чтобы не выйти в итоге за пределы ограничений по току. Можно не просто включать или выключать свет, но и управлять его яркостью. Для этого используем пины, поддерживающие ШИМ и функцию analogWrite.

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

Источник

Как регулировать яркость светодиода на arduino

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

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

В данном уроке мы рассмотрим второй способ изменения яркости светодиода — автоматический, в зависимости от освещения окружающей среды.

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

Читайте также:  Как регулировать карбюратор бензопилы партнер 351

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

Но мы, в данном уроке, разберем плавное нарастание и уменьшение яркости. Это в основном можно использовать в робототехнике, а так же в домашних условиях, например в домашнем освещении. Хотя никто не запрещает этот метод использовать и на уличных фонарях.

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

Фоторезистор — резистор, который изменяет своё сопротивление под действием света.

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

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

  • Arduino Uno
  • Braedboard
  • Соединительные провода «папа-папа»
  • Резисторы (10 кОм и 220 Ом) по 1 шт.
  • Фоторезистор 1шт.
  • Светодиод 1шт.

Далее переходим к подключению всех элементов к Arduino. Подключаем наш фоторезистор к контроллеру по схеме ниже (используется резистор на 10 кОм). Эта схема делителя напряжения.

У меня получилось так:

Далее подключаем Arduino к компьютеру и заливаем скетч (код).

Давайте разберемся с кодом.

  • Инициирует последовательное соединение и задает скорость передачи данных в бит/c, для обмена данными с компьютером. В данном случае скорость 9600 бит/с
  • Передает на монитор последовательного порта данные с фоторезистора

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

После того, как мы загрузили скетч, в Arduino IDE открываем «монитор последовательного порта» (кнопка в виде лупы на верхней панели справа).

И смотрим какие значения у нас выводятся. У меня эти значения колебались от 300 до 700 где-то.

При большой освещенности:

При малой освещенности:

Максимальное и минимальное значения освещения мы получили. Теперь давайте подключим светодиод к нашей схеме и начнем управлять его яркостью, в зависимости от показаний освещенности.

К уже имеющейся схеме, подключаем светодиод:

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

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

После добавления светодиода, у меня получилось следующее:

И теперь давайте зальем вот такой код:

Как мы видим, к предыдущему скетчу добавилось несколько новых строк. В функции setup() мы настроили пин для светодиода, на этом я останавливаться не буду. А в функции loop() появились новые функции. Давайте разберемся для чего они.

  • Объявляем новую переменную val и записываем в нее текущее значение, которое поступает на вход Arduino (пин А0)
  • Проверяем значение val. Как я уже говорил, мои значения колебались от 300 до 700. Я немного сузил участок, и взял значения 320 и 680. Но на входе Arduino все равно могут быть значения меньше или больше этого диапазона. Что не желательно. Поэтому используем функцию constrain,которая ограничивает весь диапазон получаемых значений. Если полученное значение val будет меньше 320 или больше 680, то в переменную val запишутся 320 и 680 соответственно. Мы никогда не выйдем за заданный диапазон
  • Теперь, в зависимости от получаемых значений освещенности, нужно подавать на вход светодиода уровень от 0 до 255. Но наши получаемые значения от 320 до 680. И как же это сделать? На помощь приходит функция map, которая сопоставляет заданные ей значения, в аргументах, и выдает их. Так например в данном случае, мы ей задаем, что уровень 680 сопоставляется с 0, а значение 320 — с 255. И уже исходя из значений val, она выдает значения от 0 до 255. Например, если val равно 680, то в переменную Level запишется 0, а при 320 — запишется 255
  • Ну и последняя строка выдает полученный уровень Level на светодиод

Таким образом весь цикл будет таков:

  1. Считываем значение получаемое на аналоговый вход А0 (foto). И записываем это значение в переменную val
  2. Проверяем значение переменной val, и если оно больше или меньше заданного диапазона (от 320 до 680), то перезаписываем переменную с новыми значениями, удовлетворяющих заданному участку.
  3. Записываем в переменную Level значение от 0 до 255, соответствующие пропорционально значениям 680 и 320.
  4. Выдаем значение уровня Level на вход светодиода.
  5. Включаем задержку в 50 мсек. И потом все повторяем сначала.

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

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

Задание к данному уроку будет одно: постарайтесь сделать так, что при увеличении освещенности окружающей среды, светодиод тоже увеличивал свою яркость, а когда становилось темно — светодиод погасал.

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

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

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

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

Источник

Adblock
detector