植物モニター:状態表示ライト
CoddyのArduinoジャーニー「プロジェクト」セクションの一部。レッスン 18/24。
部屋の向こうからパーセントの数値を読む人はいません。色付きのライトならひと目でわかります。植物に水が必要なときは赤、問題ないときは緑、水が多すぎるときは青です。
状態を示すライトはRGB LEDです。1つのパッケージに赤、緑、青の3つのLEDが入っており、ピン9、10、6に接続されています。共通端子はグラウンドにつながっているため、ピンがHIGHのときにそのチャンネルが点灯します。一度に1色だけ点灯させるには、1つのピンをHIGHにし、残りの2つをLOWにします。
3つの範囲に3つの色を割り当てます。今回は下の範囲から始める、駐車センサーと同じif / else if / elseの形です。
if (moisture < 30) {
// 乾燥: 赤
} else if (moisture <= 70) {
// 適度: 緑
} else {
// 湿潤: 青
}まず、3つのチャンネルをすべて消灯してください。そうしないと、前の赤色が新しい緑色に混ざって、ライトが黄色になります。
チャレンジ
簡単ステータスライトを追加します。
- ピン 9(赤)、10(緑)、6(青)は出力です
- 30% 未満:赤のみ
- 30% から 70%:緑のみ
- 70% 超:青のみ
読み取りのたびに更新します。Runを押し、ノブを回してからCheckを押します。
自分で試してみよう
// つまみは土壌水分センサーの代わりです
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プレイグラウンド