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

 



Смеситель цветов RGB на основе Arduino

Автор: Mike(admin) от 27-06-2023, 23:55

Данный проект смесителя цветов в RGB-светодиоде идеально подходит для начинающих пользователей Arduino, которые хотят попробовать создать интерактивный гаджет. Это не только весело и легко сделать, но и может быть полезно для всех, кто использует цвета RBG, например, для художников и веб-разработчиков.


Смеситель цветов RGB на основе Arduino

Представленная здесь простая схема объединяет три потенциометра для установки яркости каждого из красного, зеленого и синего светодиодов внутри светодиода RGB. Кроме того, в схему добавлена кнопка и дополнительная функция для включения и выключения цепи.


Подключите компоненты схемы, как показано на следующем изображении. Светодиод RGB подключен к ШИМ-контактам 9, 10 и 11 у Arduino. Кнопка подключена к контакту 7, а 3 потенциометра к A0, A1 и A2. Не забудьте добавить подтягивающий резистор 10 кОм к заземлению на кнопке. Также не забудьте подключить 3 резистора 220 Ом между светодиодом и выходными контактами, это гарантирует, что ваш светодиод не перегорит.


Смеситель цветов RGB на основе Arduino

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


Код программы следующий:



int blue = 9;
int green = 10;
int red = 11;

int redPot = A0;
int greenPot = A1;
int bluePot = A2;


int greenVal = 0;
int blueVal = 0;
int redVal = 0;

const int BUTTON = 7;
int state = 0;
int val = 0;
int old_val = 0;

void setup() {

  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(red, OUTPUT);
  pinMode(BUTTON, INPUT);
  Serial.begin(9600);
}

void loop() {
  Serial.begin(9600);

  val = digitalRead(BUTTON);

  if ((val == HIGH) && (old_val == LOW)) {
    state = 1 - state;
    delay(10);                      
  }

  old_val = val;

  greenVal = analogRead(greenPot);
  blueVal = analogRead(bluePot);
  redVal = analogRead(redPot);

  if (state == 1) {
    analogWrite(green, greenVal / 4);
    analogWrite(blue, blueVal / 4);
    analogWrite(red, redVal / 4);
    
    Serial.print("RGB(");
    Serial.print(redVal/4); 
    Serial.print(",");
    Serial.print(greenVal/4); 
    Serial.print(",");
    Serial.print(blueVal/4);
    Serial.println(")");
    
    delay(50);
  } else {
    analogWrite(green, 0);
    analogWrite(blue, 0);
    analogWrite(red, 0);
    delay(50);
  }
}

После того, как вы подключили схему и загрузили скетч, попробуйте повернуть ручки потенциометров. Сначала ничего не должно происходить, пока вы не нажмете кнопку. Теперь попробуйте снова повернуть ручки. Когда все потенциометры включены полностью, свет должен быть белым. Попробуйте оставить один из потенциометров выключенным или с очень низким сопротивлением и изменить два других.




© digitrode.ru


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




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

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

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