Меню Рубрики

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

Содержание

Мигаем светодиодом

В этом примере показано как с помощью контроллера Arduino заставить мигать светодиод.

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

  • контроллер Arduino
  • светодиод
  • резистор 220 Ом

Подключение

Мы подключаем резистор сопротивлением 220 Ом к выходу номер 13 (pin 13), к резистору в свою очередь подключаем анод (обычно длинная ножка) светодиода. Катод подсоединяем к земле (Grd). Затем подключаем контроллер через USB кабель к компьютеру и загружаем приведенный ниже код на котроллер Arduino.

Большинство плат Arduino имеют встроенный SMT (Surface-mount techology)светодиод, подключенный к выходу 13. Если вы запустите код на таких платах без подключения внешниего светодиода, то вы должны увидеть мигание встроенного светодиода на плате.

Схема

В коде мы первой строк задаем режим выхода для вход/выхода (pin) 13:

В основном цикле (loop) программы зажигаем светодиод:

На выходе 13 появляется напряжение 5 В. Светодиод зажигается. Затем мы выключаем светодиод:

Изменив напряжение на выходе на 0 вольт, мы выключили светодиод. Для того чтобы человеческий глаз успевал замечать переключение светодиода введем задержку с помощью функции delay() .

Светодиоды (LED) – это самый простой и дешевый способ визуализации процесса работы какой-либо программы на ардуине. Поэтому важно уметь подключать светодиоды к плате arduino.

Полупроводниковые светодиоды ( LED ) удобно использовать для индикации процесса работы вашей программы, запущенной на Ардуине. Светодиод очень легко подключить к плате ардуино. Для этого нужен собственно сам светодиод, а также резистор, номинал которого зависит от мощности светодиода.

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

Предостережение

Сначала небольшое предупреждение . Ни в коем случае не стоит подключать ваш светодиод напрямую (без резистора) к плате Arduino. Так вы спалите не только светодиод, но и (что гораздо важнее) микроконтроллер на ардуине. Тогда придётся менять контроллер или же (если он в TQFP корпусе) скорее всего выбрасывать плату ардуино целиком.

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

Подключение светодиода осуществляется следующим образом:

Электрическая схема подключения выглядит так:

Как видите, здесь светодиод подключается через резистор 220 Ом. Это стандартный номинал, который подходит в большинстве случаев: как для слабых, так и для ярких светодиодов (не очень большой мощности). Но сильно мощные светодиоды запитывать от арудины и не стоит.

Можно взять сопротивление больше или чуть меньше – это на результат не повлияет. Вообще максимально допустимый ток на один вывод микроконтроллера ATMEGA328P (который на UNO, Nano и др. ардуинах стоит) составлят 40 мА (или 0.04 А) – как входной ток, так и выходной. Когда используется резистор 220 Ом, то ток составит 5 В / 220 Ом = 0.023 А, как видим еще запас будет. Поэтому без особых опасений (за ардуину) можно ставить резистор от 125 Ом до 1 кОм (и выше). Конечно, чем выше сопротивление, тем менее ярко будет гореть светодиод.

Код программы для Arduino для моргания светодиода

Ну вот, когда светодиод к ардуине подключен, осталось протестить работоспособность всего этого дела. Для этого зашиваем в ардуину следующую программу (на языке C++):

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

Читайте также:  Водосточная труба квадратного сечения

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

Длинная ножка есть АНОД, и её надо подключать к ПИТАНИЮ через резистор (в данном случае к пину, на котором высокий HIGH потенциал). А короткую ножку КАТОД подключаем на землю GND. Резистор можно вставлять как между питанием и светодиодом, так и между землей и светодидом – в данном случае разницы никакой нету.

Подбор резистора в зависимости от цвета светодиода (для подсветки)

Как я уже сказал выше, номинал 220 – 300 Ом – это самое то, чтобы ничего не спалить. Для простой индикации другое и не надо.

Другое дело, если используется какой-либо яркий светодиод, скажем, специально для подсветки чего-то. В этом случае мы хотим использовать возможности светодиода на все 100%. Чтобы включить светодиод на максимальную яркость, нужно взять минимальное значение резистора, при котором ток не превысит максимально допустимый. Но лучше брать с запасом, конечно. Это увеличить срок службы светодиода, поскольку он зависит от тока эксплуатации.

Короче, нужно нам сопротивление резистора вычисляется по следущей формуле:

где U_V – напряжение источника питания в вольтах (для ардуины UNO, Nano, Mega это 5 Вольт).

U_F – прямое падение напряжения на светодиоде в вольтах.

I_max – максимальный прямой ток светодиода в амперах.

0.75 – для запаса (чем меньше значение, тем дольше прослужит светодиод).

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

По одним из данных:

– красный напряжение UF = 3 вольта, Imax = 20 мА

– зеленый напряжение UF = 2.5 вольта, Imax = 20 мА

– синий напряжение UF = 3 вольта, Imax = 50 мА

– белый напряжение UF = 2.7 вольта, Imax = 50 мА

– желтый напряжение UF = 3.5 вольта, Imax = 30 мА

Мои личные эксперименты показывают следующее.

Яркие синие и белые светодиоды имеют падение напряжения U=3.2В.

Если Uпит=5.6 В, то последовательно имеет смысл ставить R=120 Ом для получения тока 20 мА. Для надежности можно поставить 160 Ом – получим 15 мА. Если 220 Ом, то 11 мА (совсем надежно).

У зеленых светодидов диаметром 5mm падение напряжения U=2.8 В.

При тестировании при резисторе 120 Ом и питании 5 В такой светодиод перегорел у меня примерно через год работы (работал непрерывно для подсветки).

Красный светодиод, который средний по размерам. Падание напряжения составляет 1.92 В. Тесты:

– 2 севшие батареи по 1.2 В, резистор 100 Ом. Горит слабо.

– батарея 9 В (севшая немного), резистор 300 Ом. Горит вполно нормально.

– батарея 9 В (севшая немного), резистор 100 Ом. Горит достаточно ярко, но есть риск, что перегорит быстро.

Поскольку на резисторе происходит падение напряжения, а следовательно и потеря энергии батареи, то более оптимальный вариант – это включать последовательно 3-4 светодиода на 9 В без резистора (либо малый резистор, скажем 10 Ом)

Читайте также:  Dns подставка для ноутбука

На этом уроке Вы научитесь программировать свою плату Arduino на примере мигания встроенным светодиодом.

Необходимые элементы

Для данного примера Вам понадобится плата Arduino (в данном случае – Arduino Uno R3, но Вы сможете проработать данный пример, имея в наличии и другую плату) и кабель USB (типа A (4х12 мм) – B (7х8 мм) – более подробно можно почитать на Вики).

Что такое ” L” светодиод

На Arduino Uno присутствуют ряды коннекторов типа мама по бокам платы, которые используются для подключения периферийных электронных устройств или “шилдов”.

Кроме того, на плате присутствует встроенный светодиод (англ. – LED), которым Вы можете управлять с помощью скетчей. Этот встроенный светодиод условно назовем “L” светодиод, как это принято на многих англоязычных ресурсах.

Расположение данного светодиода на плате отмечено на фото снизу.

Загрузка примера “Blink” (мигание) в Arduino IDE

При подключении новой платы к персональному компьютеру, обратите внимание, что светодиод начинает мигать, так как все платы от производителей поступают с уже “залитым” скетчем “Blink”.

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

Пришло время проверить Ваше подключение и запрограммировать плату.

В оболочке Arduino IDE существует большая коллекция скетчей, которые уже готовы к использованию. Среди них находится и пример, который заставляет мигать “L” светодиод.

Откройте пример “Blink”, который находится в пункте меню File – Examples – 01.Basics

После открытия, расширьте окно оболочки Arduino IDE, чтобы Вы могли весь скетч в одно окне.

Скетчи из примеров, включенные в Arduino IDE предусматривают режим “только чтение” (“read only”). То есть, загрузить их на плату Вы сможете, но после изменения кода, Вы не сможете их сохранить в том же файле.

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

Из меню “File” выберите опцию “Сохранить как” (“Save As..”) и сохраните скетч под подходящим Вам названием, например, “MyBlink”.

Вы сохранили копию скетча “Blink” в Вашей библиотеке. Теперь открыть этот файл Вы можете в любой момент, перейдя по вкладке File – Scetchbook.

Загрузка примера “Blink” (мигание) на плату

Подключите свою плату Arduino к компьютеру с помощью USB и проверьте тип платы (“Board type”) и серийный порт (“Serial Port”), по которому она подключена.

Текущие настройки отображаются внизу окна оболочки Arduino IDE

Кликните на кнопку “Загрузить” (“Upload”)

Во время загрузки в нижней части окна IDE появятся ползунок загрузки и сообщения. Вначале появляется фраза “Компилирование” (“Compiling scetch..”), что означает процесс конвертирования Вашего скетча в формат, подходящий для загрузки на плату Arduino.

Дальше статус сменится на “Загрузка” (“Uploading”). В этот момент светодиоды на плате начнут мигать, так как начнется перенос скетча в микропроцессор.

В конце статус сменится на ”Загрузка завершена” (“Done uploading”). В сообщении, которое появится в текстовой строке отобразится информация о том, что загруженный скетч занимает 1,084 байта из 32,256 доступных.

Иногда при компиляции у Вас может возникнуть подобная ошибка:

Причин может быть несколько: Вы не подключили плату к компьютеру; Вы не установили необходимые драйвера; Вы выбрали некорректный серийный порт.

Если же загрузка прошла корректно, плата Arduino перезагрузится и “L” светодиод начнет мигать.

Пояснения к скетчу “Blink”

Ниже представлен код скетча “Blink”.

Читайте также:  Группы электробезопасности для электротехнического персонала

Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.

// Pin 13 has an LED connected on most Arduino boards.

// the setup routine runs once when you press reset:

// initialize the digital pin as an output.

// the loop routine runs over and over again forever:

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

Первое, на что стоит обратить внимание: в данном скетче множество “комментариев”. Обратите внимание, что комментарии не являются инструкцией по работе программы. Это исключительно пояснения отдельных функций и задач, которые выполняются на определенном этапе кода. Это не обязательная часть кода. Все между символами /* и */ в верхней части скетча – это комментарии, в которых описаны задачи программы. Так же есть комментарии, которые ограничиваются одной строкой. Они начинаются с символов // и заканчиваются по умолчанию в конце строки. Первая важная, по сути, часть данного кода это строка:

В комментариях над строкой указано, что мы присваиваем имя пину, к которому подключен светодиод. На большинстве плат Arduino это будет 13 пин. Дальше используется функция “Setup”. Опять-таки, в комментариях указано, что функция срабатывает после нажатия кнопки “reset”. Также эта функция срабатывает, когда плата перезагрузится по каким-либо другим причинам. Например, подача питания или после загрузки скетча.

// the setup routine runs once when you press reset:

// initialize the digital pin as an output.

Каждый скетч Arduino обязан включать в себя функцию “setup” и часть, в которую вы можете добавлять собственные инструкции, заключенные между < >. В нашем примере в функции присутствует только одна команда, в которой указано, что пин, который мы используем, настраивается на “вывод” (“Output”). Также обязательным для любого скетча является функция цикла “Loop”. В отличие от функции “Setup ”, которая отрабатывает один раз после перезагрузки, функция “Loop” после окончания работы команд, вновь запустится.

// the loop routine runs over and over again forever:

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

В теле функции “Loop” светодиод включается (HIGH), данное значение задерживается на 1000 миллисекунд (1 секунда), светодиод отключается (LOW) и остается выключенным на 1 секунду, после чего цикл повторится.

Изменение частоты мигания светодиода

Для того, чтобы обеспечить более частое мигание светодиода, необходимо изменить параметр, указываемый в скобках ( ) в команде “delay”.

Как уже было указано, период задержки указывается в миллисекундах. То есть, для того, чтобы заставить светодиод мигать в два раза чаще, необходимо изменить значение с 1000 на 500. В результате, пауза между включением/выключением светодиода составит половину секунды и светодиод будет мигать быстрее.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *