植物监测器:状态指示灯
本课属于 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 {
// 湿润:蓝色
}先关闭所有三个通道。否则,之前残留的红色会与新的绿色混合,灯就会变成黄色。
挑战
简单添加状态指示灯:
- 引脚 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);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
项目中的所有课
自己练习: Arduino 在线编辑器