中间色
本课属于 Coddy Arduino 学习旅程的“输出”单元。第 9 课,共 24 课。
引脚 11、10 和 9 都有 ~,因此可以用 analogWrite() 调节 RGB LED 每种颜色的亮度。每个通道的范围是 0 到 255,混合三种亮度可以得到远超 8 种的颜色:
- 橙色:红色 255,绿色 80,蓝色 0
- 紫色:红色 128,绿色 0,蓝色 255
- 柔和的白色:三种颜色的亮度都是 60
将 setColor() 改为使用 analogWrite(),它的参数就变成了亮度值:
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}这就是为什么颜色引脚要连接到带有 ~ 的引脚:连接到其他引脚时,颜色只能开或关。
挑战
简单修改 setColor(),让它使用 analogWrite(),然后反复显示:
- 橙色 (255, 80, 0),持续 1 秒
- 紫色 (128, 0, 255),持续 1 秒
按下 运行,然后按下 检查。
亲手试试
const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void setColor(int red, int green, int blue) {
digitalWrite(redPin, red);
digitalWrite(greenPin, green);
digitalWrite(bluePin, blue);
}
void loop() {
// 橙色(255, 80, 0)持续 1 秒,然后紫色(128, 0, 255)持续 1 秒
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器