Arduino RGB LED Control от 2-х горшков - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь написать какой-нибудь код, который считывает напряжение с двух разных потенциалов и преобразует его в выходные сигналы с 3 шинами, которые я затем могу отправить на светодиод RGB. Моя идея состоит в том, чтобы использовать что-то вроде цветовой карты, которая используется для построения сложных функций, но я не уверен, как это реализовать. Есть предложения?

#define COLOUR_POT_INPUT 4
#define INTENSITY_POT_INPUT 3
#define LED_RED 9
#define LED_GREEN 10
#define LED_BLUE 11

float colour_angle;
float colour_radius;
float colour_x_value;
float colour_y_value;

int red_value;
int green_value;
int blue_value;

const float pi = 3.1415;

void setup() {
  pinMode(COLOUR_POT_INPUT, INPUT);
  pinMode(INTENSITY_POT_INPUT, INPUT);
  pinMode(LED_RED, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_BLUE, OUTPUT);
}

void loop() {
  colour_angle = analogRead(COLOUR_POT_INPUT);
  colour_radius = analogRead(INTENSITY_POT_INPUT);

  colour_angle = map(colour_angle, 0, 1023, 0, 2*pi);
  colour_radius = map(colour_radius, 0, 1023, 0, 255);

  colour_x_value = colour_radius*cos(colour_angle);
  colour_y_value = colour_radius*sin(colour_angle);

}

//Insert function here that maps colour x and y value to red green blue 
value

1 Ответ

0 голосов
/ 12 ноября 2018

Если colour_angle и colour_radius представляют соответственно оттенок и насыщенность, тогда вы можете использовать любой код преобразования HSL / HSV-в-RGB с фиксированной яркостью / значением.

Выбор случайным образом из результатов Google:

Конвертация HSL в RGB

Преобразование HSV в RGB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...