В этом эксперименте мы будем управлять цветом RGB-светодиода с Arduino и с Raspberry Pi. В той версии эксперимента, которая выполняется на Raspberry Pi для управления цветом мы воспользуемся графическим пользовательским интерфейсом с тремя ползунками. На рисунках показаны вариант эксперимента для Raspberry Pi и схема эксперимента.
- Подключение макетной платы для смешивания цветов при помощи aspberry Pi
- Схема эксперимента с RGB-светодиодом
Комплектующие
В этом эксперименте для работы с Arduino и Raspberry Pi понадобятся следующие комплектующие:
LED1 - RGB-светодиод
R1-3 - Резистор 470 Ом 0,25 Вт
400-точечная беспаечная макетная плата
Перемычки «папа-папа»
Перемычки мама-папа (только для Рі)
Напомню, что перемычки «мама-папа» понадобятся только для подключения к макетной плате контактов GPIO Raspberry Pi (если вы планируете провести этот эксперимент с Raspberry Pi тоже).
Достичь оптимальной яркости и наилучшего цветового баланса можно лишь при внимательном подборе резисторов соответствующих сопротивлений. Однако при обретать комплектующие проще, если на всех трех каналах использовать резисторы с одним и тем же значением. В нашем случае я рекомендую в качестве универсальных применить резисторы на 470 Ом - они будут работать и с Raspberry Pi, и с Arduino.
Кстати, яркость и эффективность RGB-светодиода таковы, что даже при токе силой всего 3 мА (на Arduino - 6 мА) светодиод будет сиять весьма ярко.
Подключение к Arduino
В варианте этого эксперимента для Arduino используется монитор последовательного интерфейса, через который задаются пропорции красного, зеленого и синего цветов. На рисунке показана компоновка макетной платы и подключение ее к Arduino.
- Компоновка макетной платы для смешивания цветов RGB-светодиода с помощью Arduino
Самый длинный вывод RGB-светодиода это общий катод, который подключается к разъему GND платы Arduino. Порядок подключения других выводов может быть не таким, как показано у меня, поэтому, возможно, вам придется переставить некоторые провода, если ваши цвета станут смешиваться неправильно
Программа для Arduino
В скетче организуются три ШИМ канала, при помощи которых осуществляется управление яркостью каждого из трех цветов.
Код: Выделить всё
const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
Serial.println("Enter R G B (E.g. 255 100 200)");
}
void loop() {
if (Serial.available()) {
int red = Serial.parseInt(); // (1)
int green = Serial.parseInt();
int blue = Serial.parseInt();
analogWrite(redPin, red); // (2)
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
}
Уточним некоторые моменты скетча по пунктам, воспользовавшись разметкой строк, сделанной в комментариях:
1. Каждое из трех значений ШИМ, которые должны находиться в диапазоне от 0 до 255, считывается в переменные.
2. Затем для каждого канала задается ШИМ-вывод.
Загружаем и выполняем программу
Загрузив скетч, откройте в Arduino IDE окно монитора порта. Затем введите три числа в диапазоне от 0 до 255 каждое, разделив их пробелами, и нажмите кнопку
Отправить (Send) светодиод должен изменить цвет так, чтобы значения красного, зеленого и синего соответствовали тем числам, которые вы только что ввели.
Можно по отдельности проверить каждый из каналов, введя по отдельности 255 0 0 (красный), затем 0 255 0 (зеленый) и, наконец, 0 0 255 (синий).