(Спойлер: проблема не в плате. И не в вас. Просто вы ещё не знаете этих трюков.) Я потратил три дня, пытаясь понять, почему мой датчик движения пропускает срабатывания.
Код — простой. Плата — новая. Питание — стабильное.
А он — молчит в самый ответственный момент. Оказалось — я делал ошибку №2 из этого списка.
А многие до сих пор делают все пять — и думают, что «Arduino — ненадёжная игрушка». Давайте разберём по-честному — без прикрас. Что часто пишут:
→ void loop() {
→ → readSensor();
→ → Serial.println(value);
→ → delay(1000); ← ВОТ ЭТО — ЗАМЕДЛИТЕЛЬ
→ } Что происходит:
Во время delay(1000) — процессор ничего не делает.
Он не проверяет кнопки, не слушает I2C, не реагирует на прерывания.
Вы думаете — «ждёт», а на деле — зависает на целую секунду. ✅ Как исправить — используем millis()
→ unsigned long lastPrint = 0;
→ const long interval = 1000;
→
→ void loop() {
→ → if (millis() - lastPrint >= interval) {
→ → → readSensor();
→ → → Serial.println(value);
→ → → lastPrint = millis();