4.01.5. Лабораторная работа №4.1.5.md


Датчик наклона

Тема работы

Мы уже умеем управлять светодиодами и считывать нажатия кнопок. А что, если научить Рудирон реагировать на своё положение в пространстве? В этой лабораторной работе мы познакомимся с датчиком наклона — простым, но очень интересным компонентом. Мы подключим его к плате и напишем программу, которая будет зажигать встроенный светодиод L1, когда плата находится в вертикальном положении, и гасить его при наклоне.

Цель

  • Научиться подключать и считывать данные с простого цифрового датчика (датчика наклона).
  • На практике применить режим INPUT_PULLUP для подключения компонентов типа «переключатель».
  • Создать устройство, которое физически реагирует на изменение своего положения.

Оборудование и материалы

  • Отладочная плата Рудирон.
  • Макетная плата.
  • 1 шариковый датчик наклона (например, SW-520D).
  • 2 соединительных провода.
  • USB-кабель для подключения Рудирона к компьютеру.
  • Компьютер с настроенной средой Arduino IDE.

Ход работы

  1. Знакомство с датчиком наклона

    Шариковый датчик наклона — это очень простое устройство. Внутри металлического корпуса находится маленький металлический шарик. Когда датчик стоит вертикально, шарик замыкает два контакта внутри, и датчик работает как замкнутый выключатель. Если его наклонить, шарик откатывается, контакты размыкаются, и датчик превращается в разомкнутый выключатель.

    По сути, это переключатель, который реагирует на гравитацию. Такие датчики используются в некоторых автомобильных сигнализациях, умных игрушках, которые реагируют на переворачивание, и для контроля положения различных механизмов.

    Рис. 1. Принцип работы датчика наклона

  2. Сборка схемы

    Поскольку датчик работает как переключатель, для его подключения мы используем самый удобный способ — с внутренним подтягивающим резистором (pull-up).

    • Вставьте датчик наклона в макетную плату.
    • Соедините с Рудироном:
      • Один вывод датчика подключите к пину 2.
      • Второй вывод датчика подключите к GND (земля).

    Внешние резисторы и светодиоды нам не понадобятся! Мы будем использовать встроенный светодиод L1, который подключён к пину 5.

    Рис. 2. Схема подключения датчика наклона

  3. Написание и загрузка кода

    • Убедитесь, что перемычка PRG | RUN стоит в положении PRG.
    • Откройте Arduino IDE и введите следующий код:

      // Используем встроенные имена для пинов
      const int ledPin = LED_BUILTIN_1; // Встроенный светодиод L1 (пин 5)
      const int tiltSensorPin = 2;
      
      void setup() {
        pinMode(ledPin, OUTPUT);
        // Настраиваем пин датчика на вход и включаем внутренний 
        // подтягивающий резистор. Теперь при размыкании контактов
        // на пине будет HIGH.
        pinMode(tiltSensorPin, INPUT_PULLUP);
      }
      
      void loop() {
        // Считываем состояние датчика
        bool isTilted = digitalRead(tiltSensorPin);
      
        // Вспоминаем логику INPUT_PULLUP:
        // Если датчик вертикально (контакты замкнуты на GND) -> LOW
        // Если датчик наклонён (контакты разомкнуты) -> HIGH
      
        if (isTilted == LOW) {
        // Датчик стоит ровно, включаем светодиод
        digitalWrite(ledPin, HIGH);
        } else {
        // Датчик наклонён, выключаем светодиод
        digitalWrite(ledPin, LOW);
        }
      }
      
    • Нажмите кнопку «Upload», чтобы загрузить код на плату.
  4. Проверка работы

    • Поставьте плату на ровную поверхность так, чтобы датчик наклона был расположен вертикально. Светодиод L1 должен загореться.
    • Теперь аккуратно наклоните макетную плату в любую сторону. Как только шарик внутри датчика откатится, светодиод L1 должен погаснуть.
    • Верните плату в вертикальное положение — светодиод снова загорится.

Результаты

Вы создали простое, но эффектное устройство — индикатор положения. Ваша программа успешно считывает состояние цифрового датчика и реагирует на его изменение, управляя встроенным светодиодом.

Анализ результатов

Ключ к пониманию работы этой схемы — режим INPUT_PULLUP.

  • Когда датчик наклонён, его контакты разомкнуты. Цепь на пин 2 разорвана, и внутренний резистор «подтягивает» напряжение на пине к HIGH (3.3В). digitalRead() возвращает HIGH, и светодиод гаснет.
  • Когда датчик стоит вертикально, шарик замыкает контакты. Пин 2 напрямую соединяется с GND. digitalRead() возвращает LOW, и светодиод загорается.

Выводы

В этой лабораторной работе вы научились работать с новым типом цифровых входных устройств — датчиком наклона. Вы на практике закрепили, как и зачем использовать режим INPUT_PULLUP, и создали устройство, которое реагирует на физическое воздействие — изменение ориентации в пространстве.

Вопросы для самопроверки

  1. Как устроен шариковый датчик наклона?
  2. Почему для подключения этого датчика мы использовали режим INPUT_PULLUP?
  3. Какое значение (HIGH или LOW) считывается с пина, когда датчик стоит вертикально? Почему?
  4. Как нужно изменить код, чтобы светодиод, наоборот, загорался при наклоне платы?
  5. Где в реальной жизни можно применить такое устройство?

Поздравляем! Вы научились работать с цифровыми датчиками. Переходите к следующей лабораторной работе, чтобы поработать с более сложным датчиком температуры и влажности и узнать, как микроконтроллер может обмениваться с ним данными по специальному протоколу.