цифровая электроника
вычислительная техника
встраиваемые системы

 

Генератор цвета RGB на основе Arduino

Автор: Mike(admin) от 24-09-2018, 06:35

RGB представляет собой сочетание трех основных цветов: красного (RED), зеленого (GREEN) и синего (BLUE), которые используются в цифровой системе для генерации другого (составного) цвета. В данном материале будет описан довольно простой проект цветогенератора RGB с использованием Arduino. Он представляет собой небольшое руководство о том, как генерировать цветовой код и шестнадцатеричный код этого цвета.


Генератор цвета RGB на основе Arduino

Ниже представлена схема данного проекта. Эта схема генератора цвета RGB с использованием Arduino в основном разработана с использованием микроконтроллерной платы Arduino Uno, буквенно-циферного ЖК-дисплея 16 × 2, светодиода RGB, нескольких постоянных резисторов и переменных резисторов (потенциометров).


Генератор цвета RGB на основе Arduino

Резистор 100 Ом подключен через анод к RGB1, как показано на принципиальной схеме, эти три резистора являются токоограничивающими резисторами, которые управляют потоком электронов и предотвращают выход из строя светодиода. Переменные резисторы VR1-VR3 используется для управления интенсивностью свечения каждого светодиода в составном светодиоде RGB. Потенциометр VR1 соединен с аналоговым вводом A0 платы Arduino. Аналогично, потенциометры VR2 и VR3 подключаются к линиям A1 и A2 соответственно.


Резистор R4 используется для ограничения тока, протекающего к задней подсветке ЖК-дисплея, где переменный резистор VR4 используется для регулировки контрастности ЖК-дисплея.


ЖК-дисплей используется здесь для отображения значения цвета и шестнадцатеричного значения цветового кода. Значение цветового кода отображается в 1-й строке ЖК-дисплея, а шестнадцатеричный код отображается во 2-й строке ЖК-дисплея. Значение цвета отображается в 1-й строке в виде Rxxx Gxxx Bxxx, где xxx представляют числовое значение. Вторая строка показывает шестнадцатеричное значение в виде HEXxxxxxx.


Далее приведен код для программирования Arduino:



#include <LiquidCrystal.h> // библиотека для ЖК-дисплея
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // Линии Arduino для подключения ЖК-дисплея
int Radj;
int Gadj;
int Badj;
int Rval=0;
int Gval=0;
int Bval=0;
int R = 9;
int G = 10;
int B = 11;
void setup() {
pinMode(R, OUTPUT); // Вывод 9 работает на выход
pinMode(G, OUTPUT); // Вывод 10 работает на выход
pinMode(B, OUTPUT); // Вывод 11 работает на выход
lcd.begin(16,2); // Инициалиация ЖК-дисплея
delay(1);
lcd.setCursor(0,0);
lcd.print("RGB COLOUR");
lcd.setCursor(4,1);
lcd.print("GENERATOR");
delay(2000);
lcd.setCursor(0, 0);
lcd.print(" R    G    B   ");
lcd.setCursor(3,1);
lcd.print("HEX=      ");
}

void loop() {
Radj = analogRead(0);
Gadj = analogRead(1);
Badj = analogRead(2);
Rval=Radj/4; // Преобразовать диапазон с (0-1023) в (0-255)
Gval=Gadj/4; // Преобразовать диапазон с (0-1023) в (0-255)
Bval=Badj/4; // Преобразовать диапазон с (0-1023) в (0-255)
lcd.setCursor(2,0);
if (Rval<10)
{
lcd.setCursor(2,0);
lcd.print("00");
lcd.print(Rval);
}
else if(Rval<100)
{
lcd.setCursor(2,0);
lcd.print("0");
lcd.print(Rval);
}
else
{
lcd.setCursor(2,0);
lcd.print(Rval);
}
lcd.setCursor(8,1);
if (Rval<16)
{
lcd.print("0");
lcd.print(Rval, 16);
}
else
{
lcd.print(Rval, 16);
}
lcd.setCursor(7,0);
if (Gval<10)
{
lcd.setCursor(7,0);
lcd.print("00");
lcd.print(Gval);
}
else if(Gval<100)
{
lcd.setCursor(7,0);
lcd.print("0");
lcd.print(Gval);
}
else
{
lcd.setCursor(7,0);
lcd.print(Gval);
}
lcd.setCursor(10,1);
if (Gval<16)
{
lcd.print("0");
lcd.print(Gval, 16);
}
else
{
lcd.print(Gval, 16);
}
lcd.setCursor(12,0);
if (Bval<10)
{
lcd.setCursor(12,0);
lcd.print("00");
lcd.print(Bval);
}
else if(Bval<100)
{
lcd.setCursor(12,0);
lcd.print("0");
lcd.print(Bval);
}
else
{
lcd.setCursor(12,0);
lcd.print(Bval);
}
lcd.setCursor(12,1);
if (Bval<16)
{
lcd.print("0");
lcd.print(Bval, 16);
}
else
{
lcd.print(Bval, 16);
}
analogWrite(R, Rval); // сигнал ШИМ для красного цвета
analogWrite(G, Gval); // сигнал ШИМ для зеленого цвета
analogWrite(B, Bval); // сигнал ШИМ для синего цвета
}



© digitrode.ru


Теги: Arduino, светодиоды




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий