Arduino Учебный курс


Урок 8. RGB Светодиоды. Красивые цветовые переливы

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

Давайте сделаем наш собственный светодиод RGB из трех отдельных 5-миллиметровых светодиодов. Эти три светодиода имеют прозрачные неокрашенные линзы, поэтому нам нужно светодиоды с прозрачными, бесцветными линзами могут быть любого цвета! Если вы используете другой комплект, просто найдите один красный, один зеленый и один синий светодиод (с бесцветной или окрашенной линзой).

Отключите USB-кабель и замените красный светодиод на один из светодиодов с прозрачной линзой, затем снова подключите USB-кабель.

Arduino Учебный курс

Какого цвета светодиод? Если вы обнаружите красный с первой попытки, отложите его и повторите процесс, чтобы определить цвет двух других светодиодов.

Ссылка на эту симуляцию на Autodesk Tinkercad

Arduino Учебный курс

Подключите два других светодиода с последовательно включенными резисторами на 1K к контактам 10 и 11, как показано на схеме. Загрузите и откройте код из модуля Tinkercad Circuits или скопируйте его и вставьте в новый пустой эскиз Arduino. Загрузите его в свою плату Arduino Uno и посмотрите, можете ли вы сопоставить строки кода с событиями, которые вы видите на светодиодах, как это было сделано нами ранее.

Arduino Учебный курс

Незнакомой частью этого кода является функция setColor () ; Это пользовательская функция, определенная в коде после функции void loop()

void setColor(int red, int green, int blue)
{
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

Определение функции включает в себя объявление имени и типа аргументов, которые вы можете использовать в качестве настраиваемых параметров. Эти параметры вы можете изменить каждый раз при выполнении кода. В этой простой функции три целых значения записываются в три светодиодных вывода, используя уже знакомую нам функцию analogWrite () ;

setColor(255, 255, 0); // yellow

Каждый раз, когда в основном цикле вызывается эта функция, программа выполняет код в функции перед тем, как продолжить выполнение основного цикла. В этом случае аргументы используются в качестве кода уровня яркости каждого из светодиодов. Диапазон для установки яркости составляет 0-255, так как для управления каждым цветом используется один байт, что позволяет использовать 256 отдельных уровней яркости.

Теперь загрузите и откройте код из этого более сложного проекта RGB или скопируйте и вставьте код в новый пустой эскиз Arduino. Прочтите комментарии в коде, чтобы больше узнать о том, как работает эта программа. Код делает некоторые математические вычисления для преобразования диапазона 0-100 в нужный диапазон, который требуется светодиодам (0-255). Это удобно, так как вы можете думать о яркости в процентах вместо диапазона 0-255.

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

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

Перейти к следующему уроку…

1 comment

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

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