НАШ МАГАЗИН - SHOP.MUSBENCH.COM
Карта Сайта

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

Учебный курс Ардуино. Трехцветные светодиоды


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

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

Отключите USB-кабель и замените красный светодиод на один из светодиодов с прозрачной линзой, затем снова подключите USB-кабель.
   
  
    
Какого цвета светодиод? Если вы обнаружите красный с первой попытки, отложите его и повторите процесс, чтобы определить цвет двух других светодиодов.
    
   
   
   
Подключите два других светодиода с последовательно включенными резисторами на 1K к контактам 10 и 11, как показано на схеме. Загрузите и откройте код из модуля Tinkercad Circuits или скопируйте его и вставьте в новый пустой эскиз Arduino. Загрузите его в свою плату Arduino Uno и посмотрите, можете ли вы сопоставить строки кода с событиями, которые вы видите на светодиодах, как это было сделано нами ранее.
   
    
  
   
Незнакомой частью этого кода является функция
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.

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

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


Следующий урок...