Menu
CoddyTech

植物监测器:状态指示灯

本课属于 Coddy Arduino 学习旅程的“项目”单元。第 18 课,共 24 课。

没人会隔着房间读百分比。彩色灯一眼就能看出来:植物需要浇水时亮红色,状态良好时亮绿色,水分过多时亮蓝色。

状态灯是一个 RGB LED:三个 LED,分别是红色、绿色和蓝色,封装在一起,连接到引脚 9、10 和 6。它的公共引脚接地,因此当某个引脚为 HIGH 时,对应的颜色就会亮起。一次只显示一种颜色,意味着一个引脚为 HIGH,另外两个为 LOW。

三个范围,三种颜色:使用与停车传感器相同的 if / else if / else 结构,不过这次从最低范围开始:

if (moisture < 30) {
  // 干燥:红色
} else if (moisture <= 70) {
  // 适中:绿色
} else {
  // 湿润:蓝色
}

先关闭所有三个通道。否则,之前残留的红色会与新的绿色混合,灯就会变成黄色。

challenge icon

挑战

简单

添加状态指示灯:

  • 引脚 9(红色)、10(绿色)和 6(蓝色)设为输出
  • 低于 30%:仅亮红灯
  • 30% 到 70%:仅亮绿灯
  • 高于 70%:仅亮蓝灯

每次读取后都更新状态。按“运行”,转动旋钮,然后按“检查”。

亲手试试

// 旋钮用来模拟土壤湿度传感器
const int sensorPin = A0;

// 湿度用百分比表示:0 表示完全干燥,100 表示湿透。
int readMoisture() {
  int reading = analogRead(sensorPin);
  return map(reading, 0, 1023, 0, 100);
}

void setup() {
  Serial.begin(9600);
}

void loop() {
  int moisture = readMoisture();
  Serial.print("Moisture: ");
  Serial.print(moisture);
  Serial.println("%");
  delay(1000);
}
quiz icon自我测试

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

项目中的所有课

自己练习: Arduino 在线编辑器