Menu
CoddyTech

植物モニター:状態表示ライト

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つのチャンネルをすべて消灯してください。そうしないと、前の赤色が新しい緑色に混ざって、ライトが黄色になります。

challenge icon

チャレンジ

簡単

ステータスライトを追加します。

  • ピン 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);
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

プロジェクトのすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド