logo
+7 (951) 999-89-94
428003, г. Чебоксары, ул. Федора Гладкова, д.9, оф.319
07.05.2019

Управление RGB светодиодом с помощью потенциометра

Управление RGB светодиодом с помощью потенциометра

Давайте используем знания, полученные в предыдущих экспериментах, для управления RGB светодиодом.

RGB светодиод

RGB светодиод содержит внутри себя 3 светодиода, которые могут светиться красным (R), зеленым (G) и синим (B) цветами. Контролируя яркость каждого отдельного светодиода, можно контролировать и цвет всего RGB светодиода. RGB светодиод имеет 4 вывода, самый длинный из которых является общим. Этот вывод может быть либо анодом, либо катодом, в зависимости от модели.

На рисунке представоен светодиод с общим анодом, выглядит следующим образом

Комбинируя три цвета: красный, зеленый и синий – можно получить любой результирующий цвет.

Из предыдущей главы мы знаем, что один выход ШИМ платы Arduino позволяет установить 256 (0 - 255) уровней яркости. Таким образом, благодаря сочетанию трех различных цветов, RGB светодиод может иметь 256 ^3 = 16777216 цветов свечения. RGB светодиод содержит в себе 3 светодиода, поэтому нам понадобится и три потенциометра.

Компоненты

  • Плата Arduino Uno
  • Макетная плата
  • USB кабель
  • Роторный потенциометр (3 шт.)
  • RGB светодиод
  • Резистор 220 Ом (3 шт.)
  • Перемычки

Схема

Подключим 3 потенциометра ко входам A0, A1 и A2 и контакты RGB светодиода к выводам D9, D10, D11 платы Arduino Uno.

Принципиальная схема

Соединение компонентов

Скетч

Давайте напишем скетч, который будет считывать состояние 3-х потенциометров и преобразовывать их в ШИМ сигнал на цифровых выводах.

int ledPinR = 11;
int ledPinG = 10;
int ledPinB = 9;
 
void setup() { 
  pinMode(ledPinR, OUTPUT); 
  pinMode(ledPinG, OUTPUT); 
  pinMode(ledPinB, OUTPUT); 
} 
 
void loop() { 
  int adcValue;

  adcValue = analogRead(A0); 
  analogWrite(ledPinR, map(adcValue, 0, 1023, 0, 255));

  adcValue = analogRead(A1); 
  analogWrite(ledPinG, map(adcValue, 0, 1023, 0, 255)); 

  adcValue = analogRead(A2); 
  analogWrite(ledPinB, map(adcValue, 0, 1023, 0, 255)); 
} 

Скомпилируйте и загрузите скетч на плату. Вращая каждый из 3-х потенциометров, вы сможете менять цвет светодиода так, как вам захочется.

 

Предыдущий урок | В начало | Следующий урок