Menu
CoddyTech

Мониторинг растений: индикатор состояния

Часть раздела Проекты путешествия по Arduino на Coddy. Урок 18 из 24.

Никто не читает проценты через всю комнату. Цветной свет виден с первого взгляда: красный, когда растению нужна вода, зелёный, когда всё в порядке, синий, когда воды слишком много.

Световой индикатор — это RGB 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%: только синий

Обновляй его после каждого считывания. Нажми 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