来自2个电位器的Arduino RGB LED控制

时间:2018-11-11 19:53:34

标签: arduino

我正在尝试编写一些代码,该代码从2个不同的电位器读取电压,并将其转换为3 pwm输出,然后将其发送至RGB LED。我的想法是使用诸如颜色图之类的东西来绘制复杂功能,但是我不确定如何实现。有什么建议吗?

#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 :(得分:2)

假设colour_anglecolour_radius分别代表色相和饱和度,那么您可以使用任何具有固定亮度/值的HSL / HSV到RGB转换代码。

从Google搜索结果中随机选择:

HSL to RGB conversion

HSV to RGB conversion