Skip to main content

Датчики и события

ЗАЧЕМ ЭТО НУЖНО? 🎯

Суть проблемы: робот должен реагировать на изменения в окружающей среде, а не просто выполнять заранее заданную программу.

Ключевые концепции:

  • Событие - изменение состояния датчика (обнаружен объект, нажата кнопка)
  • Пороговое значение - граница между “нормой” и “событием”
  • Реакция - действие, выполняемое при наступлении события

Олимпиадная ценность: 80% заданий требуют реакции на внешние события - от измерения уровня жидкости до обработки кнопок!


КАК ИЗУЧАЕМ? 🚀

Без кода - только логика:

Датчик расстояния: 
Норма: 50-100 см → Событие: < 30 см (объект приблизился)
Реакция: включить сигнализацию

Датчик касания:
Норма: отпущена → Событие: нажата
Реакция: остановить мотор

Методика обучения:

  1. “Охотники за событиями” - найти все события в повседневной жизни (дверной звонок, автосигнализация)
  2. Эксперименты с порогами - как выбрать границу срабатывания?
  3. Таблица “Событие-Реакция” - систематизируем логику поведения
  4. Диагностика ложных срабатываний - почему датчик врет?

Обработка событий без блокировок:

// НЕПРАВИЛЬНО - пока ждем события, все остальное стоп
while (digitalRead(button) == LOW) { 
  // робот "замер" в ожидании
}

// ПРАВИЛЬНО - проверяем события в основном цикле
void loop() {
  if (digitalRead(button) == HIGH) {
    // обрабатываем нажатие
  }
  // продолжаем делать другие дела
}

Результат: Ученики понимают разницу между активным ожиданием и асинхронной обработкой событий!