Menu
CoddyTech

彩虹色循环

本课属于 Coddy Arduino 学习旅程的“输出”单元。第 8 课,共 24 课。

每种颜色都需要三行 digitalWrite()。依次显示六种颜色需要 18 行,很容易弄混每一行对应什么。

用函数可以让代码更简短。setColor() 为每种颜色接收一个值,并写入全部三个引脚:

void setColor(int red, int green, int blue) {
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

现在,每种颜色只需一行,三个值读起来就像配方:

setColor(HIGH, HIGH, LOW);  // 黄色
delay(500);

HIGH 和 LOW 分别是数字 1 和 0,因此它们可以用作 int 参数。传入参数时,顺序要保持一致:红色、绿色、蓝色。

challenge icon

挑战

简单

编写 setColor(),并使用它显示彩虹,每种颜色持续半秒,不断重复:

  1. 红色
  2. 黄色
  3. 绿色
  4. 青色
  5. 蓝色
  6. 品红色

按“运行”,然后按“检查”。

亲手试试

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) {
  // 将每个值写入对应的引脚
}

void loop() {
  setColor(HIGH, LOW, LOW);  // 红色
  delay(500);
  // 然后是黄色、绿色、青色、蓝色和品红色
}
quiz icon自我测试

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

输出中的所有课

自己练习: Arduino 在线编辑器