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

СОДЕРЖАНИЕ ►
Включение светодиодной ленты от Arduino производится через транзистор, так как LED лента работает от 12 Вольт, а пины Ардуино выдают напряжение только 5 Вольт. Рассмотрим, как подключить светодиодную ленту к микроконтроллеру для создания умного освещения в доме или создания декоративной подсветки. На этой странице мы разместили схемы и скетчи для подключения LED ленты с подробным описанием.
Управление светодиодной лентой 12 Вольт через Ардуино можно сделать с помощью реле или транзистора. В первом случае при включении / выключении будет слышен щелчок срабатывания магнитного реле, что многих будет раздражать. Кроме того, реле не позволит сделать эффект плавного затухания освещения. Транзистор не имеет перечисленных минусов, а конечное устройство будет более компактным.
Как подключить светодиодную ленту к Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- источник постоянного тока 12 Вольт;
- светодиодная лента;
- полевые / биполярные транзисторы;
- реле Ардуино 12 Вольт;
- датчик движения;
- макетная плата;
- резисторы;
- провода «папа-папа», «папа-мама».

На картинке мы представили первый вариант подключения светодиодной ленты к Ардуино: через реле, а полевой транзистор рассмотрим далее. Первый и второй скетч, размещенные ниже, можно применять на двух схемах. Третий пример с плавным включением / затуханием можно использовать только в схеме с транзистором. После сборки схемы загрузите следующие примеры программ в плату Arduino.
Программа для светодиодной ленты Ардуино
void setup() { pinMode(12, OUTPUT); // объявляем пин 12, как выход } void loop() { digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW) delay(1000); }
Пояснения к коду:
- Для зажигания LED ленты через реле можно использовать цифровой пин;
- Код повторяет программу для мигания светодиода на Ардуино;
- Для данного примера датчик движения к Ардуино можно не подключать.
Скетч для светодиодной ленты с датчиком движения
unsigned long counttime; byte w = 1; #define LED 12 // назначаем порт для реле #define PIR 2 // назначаем порт для датчика void setup() { pinMode(LED, OUTPUT); // объявляем пин LED, как выход pinMode(PIR, INPUT); // объявляем пин PIR, как вход } void loop() { delay(200); // если есть движение - включаем свет if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; } // если движения нет - включаем счетчик if (digitalRead(PIR) == LOW) { counttime = millis(); w = 0; while (w == 0) { delay(200); // если движения нет в течении 10 секунд - выключаем свет и выходим из цикла if (millis() - counttime > 10000) { digitalWrite(LED, LOW); w = 1; } // если обнаружено движение в течении 10 сек. - включаем свет и выходим из цикла if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; } } } }
Пояснения к коду:
- В выражении
if (millis() - counttime > 10000)
можно поставить любое значение в миллисекундах, при котором свет не будет выключаться; - Задержка
delay(200);
может влиять на скорость срабатывания датчика, но позволяет немного разгрузить процессор.
Как подключить LED ленту через транзистор

Биполярный или полевой транзистор позволяет плавно включать LED ленту и регулировать яркость освещения в доме на Ардуино. Для примера мы взяли RGB LED ленту, чтобы переключать разные цвета. Можно использовать и обычную ленту 12 Вольт. Соберите схему, как на картинке и загрузите в плату следующий пример кода. Если у вас остались вопросы — оставляйте их в комментариях к этой записи.
Скетч для плавного включения светодиодной ленты
void setup() { pinMode(10, OUTPUT); // объявляем пин 10, как выход } void loop() { // плавное включение for(int i=0; i<=255; i++) { analogWrite(10, i); delay(5); // ставим задержку для эффекта } //плавное затухание for(int i=255; i>=0; i--) { analogWrite(10, i); delay(5); // ставим задержку для эффекта } }
Пояснения к коду:
- Используем для плавного зажигания LED ленты 10 пин с ШИМ сигналом;
- Для этого примера датчик движения к Ардуино можно не подключать.
Скетч для плавного включения от датчика движения
unsigned long counttime; byte w = 1; #define LED 10 // назначаем порт для реле #define PIR 2 // назначаем порт для датчика void setup() { pinMode(LED, OUTPUT); // объявляем пин LED, как выход pinMode(PIR, INPUT); // объявляем пин PIR, как вход } void loop() { delay(200); // если есть движение - плавно включаем свет и заходим в цикл while (w == 2) if (digitalRead(PIR) == HIGH) { for (int i = 0; i <= 255; i++) { analogWrite(LED, i); delay(5); } w = 2; while (w == 2) { if (digitalRead(PIR) == HIGH) { delay(200); // если движения нет - свет не выключаем, а заходим в цикл while (w == 0) if (digitalRead(PIR) == LOW) { w = 0; } } } } // если движения нет - включаем счетчик и заходим в цикл while if (digitalRead(PIR) == LOW) { counttime = millis(); w = 0; while (w == 0) { delay(200); // если движения нет в течении 10 секунд - выключаем свет и выходим из цикла if (millis() - counttime > 10000) { for (int i = 255; i >= 0; i--) { analogWrite(LED, i); delay(5); } w = 1; } // если обнаружено движение - переходим в цикл (w == 2), не выключая свет if (digitalRead(PIR) == HIGH) { w = 2; } } } }
Пояснения к коду:
- в выражении
if (millis() - counttime > 10000)
можно поставить любое значение в миллисекундах, при котором свет не будет выключаться; - задержка Ардуино
delay(200);
может влиять на скорость срабатывания датчика, но позволяет немного разгрузить процессор.
Подборка на тему: Подключение светодиодной ленты к Ардуино
2 комментариев для “Подключение светодиодной ленты к Ардуино”
Добавить комментарий
Записи похожие на: Как подключить к Arduino светодиодную ленту
- Функция pinMode в Ардуино
- Arduino IDE скачать на русском
- Световой меч на Ардуино своими руками
- Ардуино: установка библиотек в Arduino IDE
Проекты похожие на: Как подключить к Arduino светодиодную ленту
Нашел много полезного здесь.
Заинтересовала схема подключения светодиодной ленты к Ардуино через транзистор: какой транзистор использовать?
Я так понял , что один транзистор один канал.
Всего три R,G,B.
Один светодиод потребляет до 60 мАмпер (зависит от характеристики ленты). Если на одном метре 30 светодиодов то это уже будет 60*30=1200 мАмпер (1 Ампер). Соответственно надо подбирать транзистор исходя из характеристик RGB ленты и ее длины