Menu
CoddyTech

中间色

本课属于 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);
}

这就是为什么颜色引脚要连接到带有 ~ 的引脚:连接到其他引脚时,颜色只能开或关。

challenge icon

挑战

简单

修改 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 秒
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输出中的所有课

自己练习: Arduino 在线编辑器