Управляем светодиодной лентой через Bluetooth

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

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

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

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

  • Плата Arduin (мы будем использовать 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-кабеля.

const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

void setup() {
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

}

void loop() {
  while (Serial.available() > 0) {
    int red = Serial.parseInt();
    int green = Serial.parseInt();
    int blue = Serial.parseInt();

    if (Serial.read() == '\n') {
      red   =   constrain(red, 0, 255);
      green =   constrain(green, 0, 255);
      blue  =   constrain(blue, 0, 255);

      analogWrite(redPin,   red);
      analogWrite(greenPin, green);
      analogWrite(bluePin,  blue);
    }  
  }
}

Важно! Не забудьте отключить модуль 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".

Скачать или установить через Google Play

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

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

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

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

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

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

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

Ардуино+