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

Как подключить RGB светодиод

Вот как выглядит распиновка, надеюсь, вам видно. Самый длинный, или второй слева это минус, а первый контакт это красный, третий это зелёный и четвертый контакт отвечает за синий цвет.

Распиновка RGB светодиода

В схеме подключения используются всего лишь три сопротивления на 220 ом, подключим RGB светодиод в 17, 18, 19, 20 разъемы на монтажной плате.

Синие провода подключены в 17,19,20 на плате, в Arduino они приходят в 10, 9, 8 пины, соответственно, это будет красный, зелёный, синий.

Управляющий или минусовой подключен в GND. С подключением, надеюсь, все понятно. Дальше напишем небольшой скетч и посмотрим, как будет себя вести светодиод.

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

const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

Идет перечисления int переменных: объявим красный - это 11 пин, зелёный - 10 пин и синий - 9 пин.

В подпрограмме setup мы напишем pinMode redPin 11 разъем выходной OUTPUT, снова pinMode, не будем заморачиваться с циклами, а пропишем просто так вот ручками это выходные пины.

void setup()
{ 
         pinMode(redPin, OUTPUT);
         pinMode(greenPin, OUTPUT);
         pinMode(bluePin, OUTPUT);
}

Теперь займемся написанием чтобы в loop работало всё нормально, напишем подпрограммку, я скопирую ее заготовку, она типа void называется Color , в ней будут перечисляться числовые значения для обозначения цветов.

void color (unsigned char red, unsigned char green, unsigned char blue)
{    
          analogWrite(redPin, red);   
          analogWrite(bluePin, blue); 
          analogWrite(greenPin, green); 
}

Для управления цветом и яркостью подключенного светодиода используем функцию analogWrite, которая на пины будет подавать ШИМ волну, с частотой, передаваемой через переменные red, green, blue.

Теперь в loop напишем комментарий «базовый цвета» и далее передадим в функцию color через запятую обозначения RGB цветов.

void loop() {
    //базовые цвета
    color(255, 0, 0); //red
    delay(1000);
    color(0,255, 255); //green  
    delay(1000);
    color(0, 0, 255); //blue  
    delay(1000);
.............................
.............................

Первый будет красный, сделаем задержку в одну секунду, затем зелёный, снова задержка и синий и снова задержка. Это основные три цвета, которые будут гореть, красный, зелёный, синий.


Смотрите так же видео Подключение RGB светодиода к Arduino - (видео), ссылка откроется в новой вкладке.


Теперь пойдут смешанные цвета, цвет Red, задержка, цвет Orange, опять сделаем задержку, цвет жёлтый, задержка, цвет зеленый, но он отличается от базового и будет светлее опять задержка, напишем ещё раз синий, это был базовый цвет, индиго какой-то типа синего, пурпурный это типа или красный или фиолетовый, задержка.

  //смеш. цвета
    color(255,0,0); //red  
    delay(1000);
    color(237,109,0); //orange  
    delay(1000);
    color(255,215,0); //yellow  
    delay(1000);
    color(34,139,34); //green
    delay(1000);
    color(0,0,255); //blue  
    delay(1000);
    color(0,46,90); //indigo
    delay(1000);
    color(128,0,128); //purple  
    delay(1000);
    color(65, 128, 121);//test
    delay(1000);

    }

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

Онлайн RGB калькулятор

Можно смешивая красный, зеленый, синий получить новый цвет. Давайте вот такой какой-нибудь такой возьмём цвет, посмотрим, что получится. Скопируем значение в скобках, напишем Color и вставим скопированное значение, в комментарии напишем test, опять сделаем задержку.

Теперь запустим проверку и загрузим скетч в Arduino. Прошу прощения точку с запятой пропустил. Снова загрузим и посмотрим что получится.

RGB светодиод красный

Цвет по-моему похож на красный, затем пошли смешанные цвета, так вот работает RGB светодиод.

Давайте выключим свет, получается освещение, прям новогоднее. Вот так вот он работает, вот так он программируется.

RGB светодиод синий

Полный текст скетча

const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

void setup()
{ 
         pinMode(redPin, OUTPUT);
         pinMode(greenPin, OUTPUT);
         pinMode(bluePin, OUTPUT);
}    

void loop()
{    
          // Базовые цвета
          color(255, 0, 0); //red 
          delay(1000);
          color(0,255, 255); //green  
          delay(1000);
          color(0, 0, 255); //blue  
          delay(1000);
          
	  // Эксперементальные цвета 
          color(255,0,0); //red  
          delay(1000);
          color(237,109,0); //orange  
          delay(1000);
          color(255,215,0); //yellow  
          delay(1000);
          color(34,139,34); //green  
          delay(1000);
          color(0,0,255); //blue  
          delay(1000);
          color(0,46,90); //indigo 
          delay(1000);
          color(128,0,128); //purple  
          delay(1000);
	  color(65, 128, 121);//test
	  delay(1000);

}     

void color (unsigned char red, unsigned char green, unsigned char blue)
{    
          analogWrite(redPin, red);   
          analogWrite(bluePin, blue); 
          analogWrite(greenPin, green); 
}

Смотрите видео: Подключение RGB светодиода к Arduino




Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok