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

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

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

Узнать полярность светодиода можно по нескольким признакам:

Теперь поговорим о подключении светодиода к плате Ардуино. Цифровые пины Ардуино способны выдавать ток до 40 мА, но для большинства светодиодов это слишком много. Самые простые и дешевые светодиоды обычно имеют значение предельно допустимого тока в 20 мА. Это значит, что подключив светодиод напрямую к пину Ардуинки, он быстро выйдет из строя. Что бы этого не произошло необходимо использовать токоограничивающий резистор. Можете почитать статью о резисторах, где я рассказывал про токоограничивающие резисторы и расчет необходимого номинала. Так же вам может пригодиться онлайн калькулятор маркировки резисторов для того, что бы найти или купить постоянные резисторы нужного номинала.

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

Мы будем подключать светодиод к цифровому пину с поддержкой ШИМ, для того что бы мы могли управлять не только включением и отключением но еще и яркостью светодиода. Советую почитать про характеристики, возможности и распиновку Ардуино нано. Код скетча будет одинаковым для Arduino Nano и Arduino Uno. Его я тоже объясню чуть позже. В качестве токоограничивающего сопротивления я буду использовать постоянный резистор на 150 Ом. Можно использовать резисторы и схожих номиналов, но при меньшем сопротивлении светодиод будет сильнее греться, а при большем будет светить тусклее. Я рекомендую использовать резисторы сопротивлением от 120 Ом и до 250 Ом для самых простых 5 мм светодиодов. Вот наглядная схема подключения светодиода к ардуино нано:

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуиноСхема подключения светодиода к Arduino Nano V3

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

Здесь все точно так же как и в прошлом примере, только я решил не использовать макетную плату. Резистор точно такой же на 150 Ом.

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуиноСхема подключения светодиода к Arduino Uno R3

Скетч для управления светодиодом с помощью Arduino

Мы подключили светодиод к Arduino как показано на схемах выше. Теперь нам нужно написать программу для управления этим светодиодом. Для написания и загрузки прошивок в микроконтроллер обычно используется Arduino IDE. Мы рассмотрим самый простейший пример. Просто будем мигать светодиодом. Вот сам код скетча:

Думаю тут все понятно. Если же нет то можете ознакомиться с разделами сайта «Аrduino для начинающих» и «Программирование«.

Источник

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

Подключение внешнего светодиода с использованием токоограничивающего резистора

Для ограничения тока через светодиод необходим резистор

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуино

Примечание 1: последовательность подключения светодиода и резистора в схеме не имеет значения, можно подключить и так: +5 В, резистор 300 Ом, светодиод, 0 В

Примечание 2: +5 В в схеме подается с одного из цифровых пинов (D0…D13), а 0 В – пин земли Gnd

Макетная плата

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуино

Используемый для курса стенд содержит макетную плату, все верхние контакты которой подключены к пину +5 В (верхние на рисунке), нижние контакты – к пину Gnd (0 В, нижние на рисунке) Arduino. Эти контакты используются в схемах и для питания внешних датчиков и модулей.

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

Практическое занятие 1. Простой светофор

Нужные компоненты:

Сборка:

Шаг 1: подключите светодиоды к макетной плате в соответствии с приведенным рисунком

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуино

Примечание: к цифровым выходам контроллера подключается контакт светодиода + (который с резистором)

Шаг 2: проводным соединителем штырек-штырек соедините контакт макетной платы с цифровым пином Arduino: красного светодиода – с пином 2, желтого – с пином 9, зеленого – с пином 12. Используйте провода тех же цветов, что и цвета светодиодов

Шаг 3: подключите второй контакт светодиодов (минус, без резистора, прямой на картинке) к земле. Соедините отверстие под этим контактом с нижним рядом отверстий. Для соединения с землей используйте провода синего или черного цвета

Шаг 4: Напишем программу для управления светофором. Для начала – просто включение светодиодов по очереди. Алгоритм работы:

Шаг 5: Напишите в среде Arduino IDE программу, написанную по данному алгоритму (выделенный жирным текст, комментарии писать не обязательно)

int led_red = 2; // красный светодиод подключен к пину 2

int led_yellow = 9; // желтый светодиод подключен к пину 9

int led_green = 12; // зеленый светодиод подключен к пину 12

// прописываем пины, к которым подключены светодиоды, как выходные

pinMode(led_red, OUTPUT);

pinMode(led_yellow, OUTPUT);

pinMode(led_green, OUTPUT);

digitalWrite(led_red, HIGH); // включить красный светодиод

delay(1000); // подождать одну секунду

digitalWrite(led_red, LOW); // выключить красный светодиод

digitalWrite(led_yellow, HIGH); // включить желтый светодиод

delay(1000); // подождать одну секунду

digitalWrite(led_yellow, LOW); // выключить желтый светодиод

digitalWrite(led_green, HIGH); // включить зеленый светодиод

delay(1000); // подождать одну секунду

digitalWrite(led_green, LOW); // выключить зеленый светодиод

> // начать цикл loop снова

Шаг 6: Загрузите написанную программу в контроллер и убедитесь, что светодиоды зажигаются в соответствии с написанным алгоритмом

Шаг 7: Сохраните написанную программу в папку Мои документы / Arduino / Learning / Ваша фамилия латинскими буквами под именем Svetofor_Simple

Примечание 1: сохранение выполняется командой Файл / Сохранить как. Открывается папка Arduino, в ней надо открыть папку Learning, в ней создать папку вида Ivanov, открыть ее, ввести имя файла (Svetofor_Simple) и нажать Сохранить

Примечание 2: так как тексты программ будут использоваться в дальнейших занятиях и для обеспечения возможности вновь просмотреть написанные программы обязательно сохраняйте написанные программы в папку Learning / Ваша фамилия

Практическое занятие 2. Светофор с миганием

Напишем более сложный алгоритм работы и изменим программу таким образом, чтобы поведение светодиодов было похоже на настоящий светофор

В этом случае задачу «помигать красным светодиодом 4 раза» можно решить «в лоб» таким способом:

digitalWrite(led_ red, HIGH); // включить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, LOW); // выключить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, HIGH); // включить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, LOW); // выключить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, HIGH); // включить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, LOW); // выключить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, HIGH); // включить светодиод

delay(500); // подождать полсекунды

digitalWrite(led_ red, LOW); // выключить светодиод

delay(500); // подождать полсекунды

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

for (начальное значение переменной счетчика, конечное значение переменной счетчика, прибавление счетчика)<

код, который нужно повторить несколько раз

С использованием цикла for код, выполняющий задачу «помигать красным светодиодом 4 раза» будет выглядеть так:

for(int i = 1 ; i

С использованием цикла for программа, реализующая написанный для светофора алгоритм, будет выглядеть так:

int led_red = 11; // красный светодиод подключен к пину 11

int led_yellow = 7; // желтый светодиод подключен к пину 7

int led_green = 2; // зеленый светодиод подключен к пину 2

// прописываем пины, к которым подключены светодиоды, как выходные

pinMode(led_red, OUTPUT);

pinMode(led_yellow, OUTPUT);

pinMode(led_green, OUTPUT);

digitalWrite(led_red, HIGH); // включить красный светодиод

delay(3000); // подождать три секунды

Управление уровнем напряжения. Аналоговый выход – команда analogWrite

Команда analogWrite (номер пина, уровень) позволяет подать на определенный пин Arduino (поддерживающих данную функцию – 3, 5, 6, 9, 10, 11 – на Arduino Uno отмечены штрихом) значение от 0 до 255, что соответствует напряжению от 0 В до +5 В на контакте. Примеры:

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуино

Таким образом, постепенно увеличивая/уменьшая переданное в analogWrite значение можно добиться плавного роста/падения напряжения на выходе. Подключенный к одному из PWM-портов Arduino (3, 5, 6, 9, 10, 11) светодиод будет плавно загораться и затухать (fading).

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

Практическое занятие 3. Изменение яркости светодиода

Нужные компоненты:

Сборка:

int ledPin = 9; // светодиод подключен к цифровому пину 3

void setup() <

// Нет необходимости вызвать функцию pinMode для команды analogWrite

void loop() <

// меняем значение fadeValue от 0 до 255 с шагом 5

// посылаем значение от 255 до 0 на пин со

analogWrite(ledPin, fadeValue);

// светодиодом, напряжение на нем меняется от 5 до 0 В и соответственно меняется яркость

delay(30); // ждем 30 миллисекунд

Примечание: используемые светодиоды достигают максимальной яркости при напряжении, меньшем 5 В. Для большей наглядности изменения яркости можно изменить в коде программы 255 на 100, а также поставить больший шаг времени в delay.

Практическое занятие 4. Изменение яркости пяти светодиодов

Нужные компоненты:

Сборка:

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

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуино

Шаг 1: подключите контакт с резистором (+ светодиода) каждого светодиода к одному из пинов, поддерживающих управление уровнем напряжения (3, 6, 9, 10, 11)

Шаг 2: откройте программу Файл / При меры / Analog / Fading и модифицируйте ее для одновременного управления яркостью пяти светодиодов:

// создадим переменные для хранения номеров контактов светодиодов

int led_1 = 3;

int led_2 = 6;

int led_3 = 9;

int led_4 = 10;

int led_5 = 11;

// Нет необходимости использовать функцию pinMode для команды analogWrite

// меняем значение fadeValue от 0 до 255 с шагом 5

// посылаем значение fadeValue на каждый пин со светодиодом

analogWrite(led_1, fadeValue);

analogWrite(led_2, fadeValue);

analogWrite(led_3, fadeValue);

analogWrite(led_4, fadeValue);

analogWrite(led_5, fadeValue);

delay(30); // ждем 30 миллисекунд

Шаг 3: Загрузите данную программу в контроллер и испытайте

Шаг 4: Разбирать схему не надо, она понадобится в следующем занятии

Команда для получения случайных чисел random

Если для выполнения задачи требуется случайное число, используется

random (минимальное значение, максимальное значение). Она выдает случайное число от минимального (включая его) до максимального (не включая его). В случае, если минимальное число отсутствует, а в скобках только одно число, оно считается максимальным, а минимальным – 0

random (300) – выдает случайное число от 0 до 299

random (100, 256) – выдает случайное число от 100 до 255

Практическое занятие 5. Случайная яркость пяти светодиодов

Компоненты и схема – те же, что и в предыдущем занятии

Используем функцию random для случайного уровня яркости для каждого из пяти светодиодов. Минимальный уровень яркости 0, максимальный – 255. Напишите и загрузите в контроллер следующую программу:

// создадим переменные для хранения номеров контактов светодиодов

int led_1 = 3;

int led_2 = 5;

int led_3 = 9;

int led_4 = 10;

int led_5 = 11;

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

int light_1 = 0;

int light_2 = 0;

int light_3 = 0;

int light_4 = 0;

int light_5 = 0;

// Нет необходимости вызвать функцию pinMode для команды analogWrite

light_1 = random(0, 256);

light_2 = random(0, 256);

light_3 = random(0, 256);

light_4 = random(0, 256);

light_5 = random(0, 256);

// посылаем полученные случайные значения на светодиоды

analogWrite(led_1, light_1);

analogWrite(led_2, light_2);

analogWrite(led_3, light_3);

analogWrite(led_4, light_4);

analogWrite(led_5, light_5);

Домашнее задание

Используются три светодиода с токоограничивающими резисторами – красный (К), желтый (Ж) и зеленый (З). В конце цикла все светодиоды должны выключаться.

Источник

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

Как управлять светодиодом ардуино. Смотреть фото Как управлять светодиодом ардуино. Смотреть картинку Как управлять светодиодом ардуино. Картинка про Как управлять светодиодом ардуино. Фото Как управлять светодиодом ардуино

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

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

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

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

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

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

Мигаем

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

Как избавиться от delay() в любом коде я рассказывал вот в этом уроке. https://www.youtube.com/watch?v=uaiLcCd9Tnk

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

Как насчёт плавного управления яркостью? Вспомним урок про ШИМ сигнал и подключим светодиод к одному из ШИМ пинов (на 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%.

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

Видео


Источник

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

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