Управление rgb лентой arduino bluetooth

Обновлено: 06.07.2024

Разбираемся как подключить Bluetooth-модуль к Arduino, а затем использовать его для управления светодиодной RGB лентой.


В этом уроке мы будем использовать Bluetooth модуль HC-06, потому как он довольно дешевый и простой в использовании. Данный вариант был заказан за $2 на Aliexpress.

Шаг 1. Комплектующие

Для реализации проекта по управлению RGB лентой нам понадобятся такие детали:

  • Плата Arduino (мы будем использовать Arduino Nano) x 1
  • Модуль Bluetooth HC-06 или HC-05 x 1
  • 12V RGB LED лента (мы используем 30LEDs/m с общим анодом) x 1
  • Клеммный винт x 1
  • Резистор 220 Ом x 3
  • BUZ11 N-Channel Power MOSFET (или эквивалент) x 3
  • Макет и перемычки
  • DC джек и DC коннектор (опционально)
  • Питание 12 В (переменный источник питания)

Шаг 2. Соединения и схема


Схема не такая сложная, как может показаться на первый взгляд.

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


Все важные соединения и схема показана на рисунке выше.

Будьте очень осторожны при подключении 12V+ шины к VIN платы Arduino, потому что вы можете сжечь плату, если вы подключите ее не правильно. Кроме того, не забудьте всё заземлить (GND).

Наши подключения в итоге выглядят таким образом:


Шаг 3. Код Arduino и последовательная связь

Загрузите следующий эскиз в Arduino с помощью USB-кабеля.

Важно! Не забудьте отключить модуль HC-06 перед загрузкой эскиза!

Зачем? Штыри связи HC-06 (RX и TX) блокируют связь между Arduino и компьютером.

Объяснение кода

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

В setup() мы начали последовательную соединение с частотой 9600 бод и установили все выводы ленты на OUTPUT.

В цикле loop(), если Serial получает что-то, он анализирует полученные данные как Integer (важно на следующем шаге)

Если он получает символ новой строки ('\ n'), он сначала ограничивает значения диапазоном 0-255 из-за диапазона PWM (ШИМ, англ. pulse-width modulation (PWM)), а затем совершает изменения в цифровых выводах с помощью метода analogWrite().

Шаг 4. Подключаем Arduino к Android-устройству


Нам нужно скачать приложение "Smart Bluetooth - Arduino Bluetooth Serial".

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

Smart Bluetooth имеет следующие функции:

  • Быстрое подключение к модулю,
  • Отправлять и получать данные из вашего модуля,
  • Управление цифровыми и PWM-контактами приемника,
  • Темная и светлая тема,
  • Различные модели управления для разных целей,
  • Современный и отзывчивый интерфейс,
  • Настраиваемые кнопки и переключатели,
  • Реализуйте свой проект RC-машин с красивым геймпадом,
  • Легкое управление RGB-лентами через слайдер,
  • Автоматически отключает Bluetooth при закрытии для экономии батареи,
  • Командная строка (терминал).

В этом уроке мы используем вторую вкладку (TAB). В целом процесс выглядит так:

  1. Откройте приложение, нажмите кнопку SEARCH и найдите соседние устройства.
  2. Когда ваше устройство найдено, выберите его, щелкнув по нему.
  3. Выберите предпочтительную тему (темный или светлый) и удерживайте выбранную вами кнопку.
  4. Дождитесь соединения, если не работает, попробуйте переподключиться.
  5. После успешного соединения выберите вторую вкладку (TAB), щелкнув по ней, перетащите ползунки и проверьте, не изменила ли светодиодная полоса цвет.

Шаг 5. Результат


На этом наше знакомство с подключением RGB-ленты и управлению ей через Arduino заканчивается. В следующих уроках мы постараемся усложнить проект.

Смотрите распиновку многоцветной ленты

Данный проект посвящен тому, как сделать светодиодную подсветку, управляемую с соседней комнаты, чтобы не вставать с дивана. Светодиодная RGB-подсветка одинаково хорошо украшает как маленький аквариум, так и большую комнату.

Можно засветить разными цветами баню от RGB ленты на Arduino. Создать, так сказать, баню на микропроцессорном управлении от Arduino.

Всего лишь понадобятся для сборки RGB-подсветки такие компоненты:

  1. Bluetooth модуль HC-05 для беспроводной связи с Arduino.
  2. Плата Arduino nano, mini, Uno с микропроцессором ATmega8,ATmega168,ATmega328.
  3. Светодиодная лента RGB, при необходимости во влагозащитном исполнении IP65 или без него.
  4. Смартфон с Android как пульт управления RGB-подсветкой.
  5. Полевые MOSFET транзисторы, такие как P3055LD, P3055LDG, PHD3355L, но лучше с выводами для закрепления в монтажных отверстиях. Биполярные транзисторы работают хуже.
  6. Резисторы 10 кОм, 0.125 Вт — 3 штуки.

Немного теории про подключение RGB ленты к Arduino

Нельзя подключить светодиодную полоску напрямую к плате Arduino. Светодиодная лента светиться от 12 В, тогда как микропроцессору нужно для работы всего 5 В.

Но, самая главная проблема в том, что выходы микропроцессора не имеют достаточной мощности для питания целой ленты светодиодов. В среднем метровой длины светодиодная полоса потребляет 600 мА. Такой ток точно выведет из строя плату Arduino.

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

Для развязки по питанию, в качестве ключей, рекомендуется использовать транзисторы. Лучше использовать полевые MOSFET транзисторы: им для открытия нужен мизерный ток на «затвор», к тому же они имеют большую мощность в сравнении с биполярными ключами такого же размера.

Подключение RGB ленты к Arduino

На электромонтажной схеме на управление лентой задействованы ШИМ-выхода: 9 (красный), 10 (зеленый), 11 (голубой).

Три резистора по 10 кОм, 0.125 Вт повешены на «затвор» каждого транзистора.

Плюс от блока питания 12 В (красный провод) идет напрямую на RGB ленту. Смотрите распиновку многоцветной ленты.

Смотрите распиновку многоцветной ленты

Минус от блока питания 12 В (черный провод) распределяется по «истокам» полевых транзисторов.

«Сток» каждого транзистора связан с отдельным контактом ленты: R, G, B. Рекомендуется для удобства при подключении использовать провода красного, зеленого, голубого цвета.

Контакт заземления GND платы Arduino следует посадить на минус входного питания.

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

Подключение

Подключение Bluetooth модуля HC-05:

  • VCC — 5V (питание +5 В);
  • GND — GND (земля, общий);
  • RX — TX на Arduino nano, mini, Uno;
  • TX — RX на Arduino nano, mini, Uno;
  • LED — не используется;
  • KEY — не используется.

Подключение

Загрузка скетча RGB-ленты

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

Если понадобиться подключить один RGB светодиод, тогда есть электромонтажная схема его подключения.

подключить один RGB

Установка приложения на телефон

Скачиваем приложение с коротким названием RGB на телефон. Здесь бесплатное приложение RGB на Android .

После установки запускаем приложение по иконке.

 запускаем приложение

Кликаем по надписи connect

connect

Находим в списке установленный Bluetooth модуль HC-05.

Находим в списке

При наличии связи вместо надписи connect будет отображаться адрес и название установленного модуля Bluetooth.

Ну, вот и всё, управление RGB подсветкой налажено!

Вот видео-пример работы нашего проекта:

Автор: Виталий Петрович.

Как сделать солнечную батарею с самонаводкой

Содержание1 Понадобится некоторое программное обеспечение:2 Этап 2: приспособления необходимые для постройки основания3 Этап 3:

Биометрический замок для авто

Содержание1 Принцип работы охранного устройства на Arduino.2 Используемые компоненты.3 Сборка и программирование.4 Примечание. В Благодаря Arduino можно собрать универсальный пульт дистанционного управления (ПДУ). Очень удобно, когда с одного

Часы с LED-индикаторами на Arduino

После создания множества прототипов Arduino на макетной плате, я решил сделать что-то полезное, то,

Мультитестер на Arduino своими руками

За универсальным тестером будущее. Всего лишь при подсоединении щупов, универсальный пробник определяет сопротивление, ёмкость,

Офисный шпион KeySweeper

Содержание1 Возможности2 Железо3 Микроконтроллер Arduino или Teensy4 Микросхема NRF24L01+ 2,4 ГГц5 Зарядное устройство AC

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

Не очень хочется ставить приложения из статей с такими требованиями.

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

Несколько советов о защите Андроид устройств:

3. Скачивайте приложения и их обновления с официального сайта Play Маркет. Хотя спай-программы – трояны для DDOS атак таки распространяются через все ресурсы сети Интернет, и через Play маркет тоже, но на Маркете большинство вредоносных программ сразу удаляется после обнаружения. Для Андроид вирусов не существует. Вирусы компьютерной операционки Windows для Андроид не страшны. Их можно только распространять с помощью Андроид устройств, пользуясь почтой, MMS рассылкой, передачей файлов.

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


400 нм (фиолетовый) до

RGB светодиоды

В качестве магазина рекомендую CHANZON, самые хорошие светодиоды и чипы/матрицы.

RGB ленты

blank

RGB светодиодные ленты устроены аналогично одноцветным лентам и RGB светодиодам: в 12 Вольтовой ленте светодиоды каждого цвета соединяются по три штуки с токоограничивающим резистором и образуют сегмент ленты, далее эти сегменты подключаются параллельно. Также лента имеет общий вывод со всех цветов, в большинстве случаев это общий анод. Почему? Помните, в уроке про управление нагрузкой я говорил, что чаще всего используют N-канальные полевые транзисторы, потому что они дешевле, удобнее в применении и имеют более удачные характеристики? Вот именно поэтому! Драйверы для RGB лент также делают на основе N-канальников, поэтому найти в продаже ленту с общим катодом даже вряд-ли получится. В качестве магазина на aliexpress рекомендую BTF Lighting , самые качественные ленты. Итак, как нам подключить RGB светодиодную ленту к Arduino? Точно так же, как обычную! Но тут я добавлю ещё несколько интересных вариантов.

MOSFET

LED Amplifier

blank

Драйвер Н-моста

Ну и экзотический вариант: использовать полномостовой драйвер для моторов. Почему нет? Количество выходов у таких драйверов всегда кратно двум (для подключения одного мотора), так что это отличный вариант для управления также RGBW лентой. Драйверы можно найти на aliexpress по названию.

blank

blank

blank

Программирование

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

Библиотека GRGB

  • Поддержка драйверов с общим анодом и общим катодом
  • Настройка яркости
  • Гамма-коррекция яркости (квадратный CRT)
  • Библиотека может не привязываться к пинам и просто генерировать значения 8 бит
  • Быстрые оптимизированные целочисленные вычисления (не везде)
  • Плавный переход между любыми цветами (не блокирует выполнение кода)
  • Установка цвета разными способами:
    • RGB
    • HSV
    • Быстрый HSV
    • Цветовое колесо (1530 значений)
    • Цветовое колесо (255 значений)
    • Теплота (1000-40000К)
    • HEX цвета 24 бита
    • HEX цвета 16 бит
    • 17 предустановленных цветов

    Например плавная смена цвета по спектру будет выглядеть вот так:

    В рамках этого урока мы рассмотрим некоторые алгоритмы, потому что это интересно и может пригодиться где-то ещё.

    Хранение цвета

    Может пригодиться при связке Arduino и веба.

    Включение цветов

    Как я уже писал выше, включение того или иного цвета производится точно так же, как в уроке про обычные светодиоды. Для плавного управления яркостью используется ШИМ сигнал.

    Для плавного управления цветом можно использовать потенциометры:

    Цветовое колесо

    Пространство HSV

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

    Подключение большого количества RGB

    У меня на сайте есть статья, где рассказано об алгоритме динамической индикации RGB светодиодов. Она позволяет подключить несколько RGB светодиодов или лент с возможностью изменения цвета.

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

    К таким лентам можно купить источник питания, диммер, диммер с пультом управления. Это позволит вам использовать светодиодную ленту для посветки. Однако если вы захотите запрограммировать алгоритм изменения цвета, или сделать управление из компьютера — то тут начинается разочарование. Вы в продаже не найдете диммеров с управлением через COM-порт или Ethernet.

    Я решил эту проблему с помощью Arduino, и хочу поделиться своим вариантом решения с Вами.


    Теоретическая часть

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

    В качестве мозгов идеально подходит Arduino. В её программу можно записать любой алгоритм изменения цветов, а также её можно управлять как с помощью модулей Arduino, так и удаленно по Ethernet, Ик-порту, Bluetooth, используя соответствующие модули.

    Arduino Leonardo

    Для реализации задуманного я выбрал Arduino Leonardo. Она одна из самых дешевых плат Arduino, и она имеет много выводов с поддержкой ШИМ.

    И так, источник ШИМ у нас имеется, остаётся придумать с силовыми ключами. Если побродить по интренет магазинам, то выяснится, что не существует модуля Arduino для управления RGB лентами. Или просто универсальных модулей с силовыми транзисторами. Также можно найти огромное количество сайтов радиолюбителей, которые делают платы с силовыми ключами сами.

    Однако есть способ проще! Нас выручит модуль Arduino для управления двигателями. Этот модуль имеет все необходимое для нас — на нем установлены мощные ключи на 12В.


    Пример такого модуля является «L298N Module Dual H Bridge Stepper Motor Driver Board Modules for Arduino Smart Car FZ0407». Такой модуль основан на микросхеме L298N, которая представляет из себя 2 моста. Однако мостовое включение полезно для двигателя (от этого он может менять направление вращения), а в случае RGB ленты, оно бесполезное.

    Мы будем использовать не весь функционал этой микросхемы, а только 3 её нижних ключа, подключив ленту как показано на рисунке.


    Практическая часть часть

    Для реализации потребуется Arduino Leonardo, Модуль управления двигателями L298N, Источник 12В (для запитки ленты), сама RGB лента, соединительные провода.
    Для удобства подключения я еще использовал Fundruino IO Expansion, но он никакой функциональной нагрузки не несет.

    Схема подключения показана на рисунке.


    Хочу дополнительно описать питание системы. В данной схеме питание подается на модуль управления двигателями, в нем стоит понижающий источник питания на 5В, и эти 5В я подаю на вход Vin питания Arduino. Если разорвать эту связь (естественно земли оставив соединенными), то запитывать Arduino и силовые ключи можно от разных источников питания. Это может быть полезно когда к Arduino много всего подключено, и источник в модуле управления двигателями не справляется (выключается по перегреву).

    Управляется RGB лента с помощью команд analogWrite, которая настраивает выход для формирования ШИМ сигнала.

    LED, arduino

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

    Ардуино – принцип действия

    Arduino Remote Control, led

    плата Arduino

    Плата Ардуино – это устройство, на котором установлен программируемый микроконтроллер. К нему подключены различные датчики, органы управления или encoder и, по заданному скетчу (программе), плата управляет моторами, светодиодами и прочими исполнительными механизмами, в том числе и другими платами Ардуино по протоколу SPI. Контроль устройства может осуществляться через дистанционный пульт, модуль Bluetooth, HC-06, Wi-Fi, ESP или internet, и кнопками. Одни из самых популярных плат – Arduino Nano и Arduino Uno, а также Arduino Pro Mini – устройство на базе микроконтроллера ATmega 328

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

    Принцип управления нагрузкой через Ардуино

    Connection, Arduino, LED

    управление Arduino

    Для решения подобной проблемы во многих проектах нужно подключить дополнительные устройства:

    • Реле. Кроме отдельных реле с напряжением питания 5В есть целые сборки с разным количеством контактов, а также со встроенными пускателями.
    • Усилители на биполярных транзисторах. Мощность таких устройств ограничена током управления, но можно собрать схему из нескольких элементов или использовать транзисторную сборку.
    • Полевые или MOSFET-транзисторы. Они могут управлять нагрузкой с токами в несколько ампер и напряжением до 40 – 50 В. При подключении мосфета к ШИМ и электродвигателю или к другой индуктивной нагрузке, нужен защитный диод. При подключении к светодиодам или LED-лампам в этом нет необходимости.
    • Платы расширения.

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

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

    Через реле

    С помощью биполярного транзистора

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

    Транзистор лучше применять n-p-n с общим эмиттером. Для большего коэффициента усиления используется схема с несколькими элементами или транзисторная сборка (микросхема-усилитель).

    С помощью полевого транзистора

    Кроме биполярных, для управления полосами используются полевые транзисторы. Другое название этих приборов – МОП или MOSFET-transistor.

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

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

    С помощью плат расширения

    Кроме реле и транзисторов используются готовые блоки и платы расширения.

    Это может быть Wi-Fi или Bluetooth, драйвер управления электродвигателем, например, модуль L298N или эквалайзер. Они предназначены для управления нагрузками разной мощности и напряжения. Такие устройства бывают одноканальными – могут управлять только монохромной лентой, и многоканальными – предназначены для устройств RGB и RGBW, а также лент со светодиодами WS 2812.

    Пример программы

    LED, arduino

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

    Платы Ардуино способны управлять светодиодными конструкциями по заранее заданным программам. Их библиотеки можно [link]скачать с официально сайта[/link], найти в интернете или написать новый sketch (code) самому. Собрать такое устройство можно своими руками.

    Читайте также: