- Необходимые материалы:
- LDR:
- RGB светодиод:
- Принципиальная электрическая схема:
- Объяснение программирования:
- Работа лампы смешивания цветов Arduino:
Что, если мы сможем генерировать разные цвета с помощью одного светодиода RGB и сделать угол нашей комнаты более привлекательным? Итак, вот простая лампа для смешивания цветов на базе Arduino, которая может менять цвет при изменении освещения в комнате. Таким образом, эта лампа автоматически изменит свой цвет в зависимости от условий освещения в комнате.
Каждый цвет представляет собой сочетание красного, зеленого и синего цветов. Таким образом, мы можем генерировать любой цвет, используя красный, зеленый и синий цвета. Итак, здесь мы будем варьировать ШИМ, то есть интенсивность света на LDR. Это дополнительно изменит интенсивность красного, зеленого и синего цветов в светодиодах RGB, и будут производиться разные цвета.
В таблице ниже показаны сочетания цветов с соответствующими изменениями рабочих циклов.
Необходимые материалы:
- 1 х Arduino UNO
- 1 х макет
- 3 резистора 220 Ом
- 3 резистора по 1 кОм
- Перемычки
- 3 х LDR
- 3 цветные полоски (красная, зеленая, синяя)
- 1 х RGB светодиод
LDR:
Мы будем использовать фоторезистор (или светозависимый резистор, LDR или фотопроводящий элемент) здесь, в этой схеме. LDR изготавливаются из полупроводниковых материалов, чтобы иметь светочувствительные свойства. Эти LDR или ФОТОРЕЗИСТОРЫ работают по принципу «фотопроводимости». Этот принцип гласит, что всякий раз, когда свет падает на поверхность LDR (в данном случае), проводимость элемента увеличивается или, другими словами, сопротивление LDR падает, когда свет падает на поверхность LDR. Это свойство уменьшения сопротивления для LDR достигается благодаря тому, что это свойство полупроводникового материала, используемого на поверхности.
Здесь три датчика LDR используются для управления яркостью отдельных красных, зеленых и синих светодиодов внутри светодиода RGB. Узнайте больше об управлении LDR с помощью Arduino здесь.
RGB светодиод:
Существует два типа светодиодов RGB: один с общим катодом (общий отрицательный), а другой - с общим анодом (общий положительный). В CC (общий катод или общий отрицательный вывод) будет три положительных вывода, каждый вывод представляет цвет, а один отрицательный вывод - все три цвета.
В нашей схеме мы собираемся использовать тип CA (Common Anode или Common Positive). В типе с общим анодом, если мы хотим, чтобы КРАСНЫЙ светодиод был включен, нам нужно заземлить контакт КРАСНОГО светодиода и подать питание на общий плюс. То же самое и со всеми светодиодами. Здесь вы узнаете, как подключить RGB-светодиод к Arduino.
Принципиальная электрическая схема:
Полная принципиальная схема этого проекта приведена выше. Подключение + 5 В и заземление, показанное на принципиальной схеме, может быть получено от контакта 5 В и заземления Arduino. Сама Arduino может питаться от вашего ноутбука или через разъем постоянного тока с использованием адаптера 12 В или батареи 9 В.
Мы будем использовать ШИМ для изменения яркости светодиода RGB. Вы можете узнать больше о ШИМ здесь. Вот несколько примеров ШИМ с Arduino:
- Переменный блок питания от Arduino Uno
- Управление двигателем постоянного тока с использованием Arduino
- Тональный генератор на базе Arduino
Объяснение программирования:
Сначала мы объявляем все входы и выходы, как показано ниже.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; const byte blue_sensor_pin = A2; константный байт green_led_pin = 9; константный байт blue_led_pin = 10; константный байт red_led_pin = 11;
Объявите начальные значения датчиков и светодиодов как 0.
беззнаковый int red_led_value = 0; беззнаковый int blue_led_value = 0; беззнаковый int green_led_value = 0; беззнаковый int red_sensor_value = 0; беззнаковый int blue_sensor_value = 0; беззнаковый int green_sensor_value = 0; void setup () { pinMode (red_led_pin, ВЫХОД); pinMode (blue_led_pin, ВЫХОД); pinMode (green_led_pin, ВЫХОД); Serial.begin (9600); }
В разделе цикла мы возьмем вывод трех датчиков с помощью analogRead (); функция и хранить в трех разных переменных.
void loop () { red_sensor_value = analogRead (red_sensor_pin); задержка (50); blue_sensor_value = analogRead (blue_sensor_pin); задержка (50); green_sensor_value = аналоговое чтение (green_sensor_pin);
Распечатайте эти значения на последовательном мониторе для целей отладки
Serial.println («Исходные значения датчика:»); Serial.print ("\ t Красный:"); Serial.print (red_sensor_value); Serial.print ("\ t Синий:"); Serial.print (blue_sensor_value); Serial.print ("\ t Зеленый:"); Serial.println (green_sensor_value);
Мы получим от датчиков 0-1023 значения, но наши выводы ШИМ Arduino имеют на выходе 0-255 значений. Итак, нам нужно преобразовать наши необработанные значения в 0-255. Для этого мы должны разделить необработанные значения на 4 ИЛИ, просто мы можем использовать функцию отображения Arduino для преобразования этих значений.
red_led_value = red_sensor_value / 4; // определяем красный светодиод blue_led_value = blue_sensor_value / 4; // определяем синий светодиод green_led_value = green_sensor_value / 4; // определяем зеленый светодиод
Печать сопоставленных значений на серийный монитор
Serial.println («Сопоставленные значения датчика:»); Serial.print ("\ t Красный:"); Serial.print (red_led_value); Serial.print ("\ t Синий:"); Serial.print (blue_led_value); Serial.print ("\ t Зеленый:"); Serial.println (green_led_value);
Используйте analogWrite (), чтобы установить вывод для светодиода RGB
analogWrite (красный_контактный_контакт, красный_лед_значение); // указываем красный светодиод analogWrite (blue_led_pin, blue_led_value); // указываем синий светодиод analogWrite (green_led_pin, green_led_value); // указываем зеленый
Работа лампы смешивания цветов Arduino:
Поскольку мы используем три LDR, поэтому, когда свет падает на эти датчики, его сопротивление изменяется, в результате чего напряжения также изменяются на аналоговых выводах Arduino, которые действуют как входные выводы для датчиков.
Когда интенсивность света на этих датчиках изменяется, соответствующий светодиод в RGB будет светиться с изменением величины сопротивления, и у нас есть разное смешение цветов в светодиодах RGB с использованием ШИМ.