Цветомузыка с использованием Arduino, трехцветного светодиода и фоторезисторов


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

Внешний вид цветомузыки с использованием Arduino, трехцветного светодиода и фоторезисторов

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

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Макетная плата.
  3. Резистор 1 кОм (3 шт.) (купить на AliExpress).
  4. Резистор 220 Ом (3 шт.) (купить на AliExpress).
  5. Соединительные провода.
  6. Фоторезистор (3 шт.) (купить на AliExpress).
  7. Три цветных ленты (red, green, blue).
  8. Трехцветный светодиод (купить на AliExpress).

Фоторезистор

В нашем проекте для измерения интенсивности мы будем использовать фоторезисторы (light-dependent resistor, LDR). Фоторезисторы изготавливаются из полупроводниковых материалов, что позволяет им приобрести зависимые от света свойства. При увеличении количества света, падающего на фоторезистор, его проводимость увеличивается, а сопротивление, следовательно, уменьшается.

Внешний вид фоторезисторов

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

Трехцветный светодиод (RGB LED)

Существуют два типа трехцветных светодиодов – с общим катодом и общим анодом. В трехцветном светодиоде с общим катодом (CC, Common Cathode или Common Negative) имеется три положительных вывода, каждый из которых отвечает за свой цвет, и один отрицательный вывод для всех трех цветов.

Внешний вид трехцветного светодиода

Внутренняя схема соединений трехцветного светодиода

В нашем проекте мы будем использовать трехцветный светодиод с общим анодом (CA, Common Anode или Common Positive), в котором три отрицательных вывода (каждый отвечает за свой цвет) и один положительный. Если мы хотим в данном случае зажечь красный светодиод нам необходимо подать землю на контакт красного светодиода и питание на общий положительный вывод. Аналогично и для светодиодов других цветов. Более подробно о подключении трехцветного светодиода к плате Arduino можно прочитать в этой статье.

Работа схемы

Схема цветомузыки с использованием Arduino, трехцветного светодиода и фоторезисторов представлена на следующем рисунке.

Схема цветомузыки с использованием Arduino, трехцветного светодиода и фоторезисторовВся схема запитывается от контакта +5V Arduino. Саму плату Arduino можно запитать от компьютера через USB кабель, от адаптера на 12 В или с помощью батарейки на 9 В.

Для управления яркостью свечения светодиодов разного цвета мы будем использовать ШИМ (широтно-импульсную модуляцию, в англ. – PWM). Более подробно об использовании ШИМ в плате Arduino можно прочитать в этой статье.

Исходный код программы для Arduino

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

Для начала мы должны инициализировать все используемые контакты.

Затем присвоим начальные значения (нулевые) используемым переменным и зададим режим работы контактов.

Далее в функции loop мы будем считывать значения с выхода трех контактов с помощью функции analogRead() и сохранять их в трех разных переменных.

Печатаем эти значения в окне монитора последовательной связи (serial monitor) для целей отладки.

С выхода АЦП (аналого-цифровых преобразователей) данных контактов мы будем получать значения в диапазоне 0-1023, а на выходе ШИМ контактов нам нужны значения в диапазоне 0-255. Поэтому для преобразования значений из диапазона 0-1023 в диапазон 0-255 мы можем просто делить получаемые значения на 4 или использовать для преобразования значений функцию map Arduino.

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

Используем функцию analogWrite() для управления интенсивностью свечения светодиодов всех цветов.

Принцип работы проекта достаточно прост. Когда изменяется интенсивность света, падающего на фоторезисторы, изменяется их сопротивление, что приводит к изменению напряжения на используемых аналоговых входах Arduino. А полученные значения с АЦП аналоговых контактов с помощью ШИМ используются для управления яркостью свечения светодиодов каждого цвета в трехцветном светодиоде. Таким образом, в зависимости от освещения в комнате мы получаем разные цвета в трехцветном светодиоде.

Тестирование работы цветомузыки

Далее представлен полный код программы.

Видео, демонстрирующее работу цветомузыки

(Проголосуй первым!)
Загрузка...
3 127 просмотров

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

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