我正在尝试写一些代码,从2个不同的pots读取电压,并将其转换为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发布于 2018-11-12 22:16:42
假设colour_angle和colour_radius分别表示色调和饱和度,那么您可以使用任何HSL/HSV到RGB转换代码,并具有固定的亮度/值。
从谷歌搜索结果中随机挑选:
HSL to RGB conversion
https://stackoverflow.com/questions/53252608
复制相似问题