编写三个电位器控制三色灯的代码
时间: 2024-05-16 14:13:28 浏览: 10
以下是使用 Arduino UNO 编写的三个电位器控制三色灯的代码:
```c++
int redPin = 9; // 红色LED连接的引脚
int greenPin = 10; // 绿色LED连接的引脚
int bluePin = 11; // 蓝色LED连接的引脚
int redPotPin = A0; // 红色电位器连接的引脚
int greenPotPin = A1; // 绿色电位器连接的引脚
int bluePotPin = A2; // 蓝色电位器连接的引脚
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
int redValue = analogRead(redPotPin); // 读取红色电位器的值
int greenValue = analogRead(greenPotPin); // 读取绿色电位器的值
int blueValue = analogRead(bluePotPin); // 读取蓝色电位器的值
// 将电位器的值转换为有效的 PWM 范围
int redPWM = map(redValue, 0, 1023, 0, 255);
int greenPWM = map(greenValue, 0, 1023, 0, 255);
int bluePWM = map(blueValue, 0, 1023, 0, 255);
// 设置 RGB LED 的颜色
analogWrite(redPin, redPWM);
analogWrite(greenPin, greenPWM);
analogWrite(bluePin, bluePWM);
// 等待 10 毫秒,让颜色改变不要太快
delay(10);
}
```
这个代码可以实现通过三个电位器控制 RGB LED 的颜色,红色电位器控制红色通道,绿色电位器控制绿色通道,蓝色电位器控制蓝色通道。电位器的值通过 `analogRead()` 函数读取,然后通过 `map()` 函数将其转换为有效的 PWM 范围(0~255),最后使用 `analogWrite()` 函数将 PWM 值写入对应的引脚来控制 RGB LED 的颜色。`delay()` 函数用于让颜色改变不要太快。