Датчики и события
ЗАЧЕМ ЭТО НУЖНО? 🎯
Суть проблемы: робот должен реагировать на изменения в окружающей среде, а не просто выполнять заранее заданную программу.
Ключевые концепции:
- Событие - изменение состояния датчика (обнаружен объект, нажата кнопка)
- Пороговое значение - граница между “нормой” и “событием”
- Реакция - действие, выполняемое при наступлении события
Олимпиадная ценность: 80% заданий требуют реакции на внешние события - от измерения уровня жидкости до обработки кнопок!
КАК ИЗУЧАЕМ? 🚀
Без кода - только логика:
Датчик расстояния:
Норма: 50-100 см → Событие: < 30 см (объект приблизился)
Реакция: включить сигнализацию
Датчик касания:
Норма: отпущена → Событие: нажата
Реакция: остановить мотор
Методика обучения:
- “Охотники за событиями” - найти все события в повседневной жизни (дверной звонок, автосигнализация)
- Эксперименты с порогами - как выбрать границу срабатывания?
- Таблица “Событие-Реакция” - систематизируем логику поведения
- Диагностика ложных срабатываний - почему датчик врет?
Обработка событий без блокировок:
// НЕПРАВИЛЬНО - пока ждем события, все остальное стоп
while (digitalRead(button) == LOW) {
// робот "замер" в ожидании
}
// ПРАВИЛЬНО - проверяем события в основном цикле
void loop() {
if (digitalRead(button) == HIGH) {
// обрабатываем нажатие
}
// продолжаем делать другие дела
}
Результат: Ученики понимают разницу между активным ожиданием и асинхронной обработкой событий!
