Урок 13: Датчик Наклона

1. Цель эксперимента

Изучить работу шарикового переключателя (датчика наклона) и с помощью Arduino зажигать светодиод, когда плата наклоняется. Такой датчик может служить простым «датчиком переворота» для сигнализации падения, контроля уровня или определения положения устройства в пространстве.

2. Компоненты

Кол-во

Деталь

1

Плата Arduino UNO

1

Шариковый переключатель (датчик наклона)

1

LED 5 мм (любого цвета)

1

Резистор 220 Ω — ограничение тока LED

1

Резистор 10 kΩ — подтяжка входа к GND

1

Макетная плата (breadboard)

5

Перемычки «папа–папа»

1

USB-кабель A-B

3. Немного знаний

Шариковый переключатель датчика наклона

Внутри герметичной трубки находится металлический шарик. Когда она расположена горизонтально, шарик замыкает два контакта: датчик «включён». Стоит наклонить трубку — шарик катится в сторону, контакты размыкаются и датчик «выключается».

4. Схема подключения

Схема подключения шарикового переключателя к Arduino
  • Один вывод переключателя → A5 (аналоговый вход)

  • Второй вывод переключателя → GND

  • Между A5 и GND ставим резистор 10 kΩ (pull-down)

  • Светодиод: D8 → резистор 220 Ω → анод LED, катод → GND

5. Пример кода

tilt_sensor.ino
// ────────────────────────────────────────────────
//  Урок 13 — Шариковый переключатель (датчик наклона)
// ────────────────────────────────────────────────

const byte ledPin    = 8;   // пин светодиода
const byte sensorPin = A5;  // аналоговый вход датчика

void setup() {
  pinMode(ledPin, OUTPUT);  // LED как выход
  Serial.begin(9600);       // монитор @9600 бод
}

void loop() {
  int value = analogRead(sensorPin); // считываем 0–1023

  // Если значение больше половины диапазона (>512 ≈ 2,5 В),
  // считаем датчик «замкнутым» и зажигаем светодиод.
  if (value > 512) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  // Отправляем данные в Serial Monitor для наблюдения
  Serial.println(value);
  delay(100); // обновление 10 раз в секунду
}

6. Как работает код

  • analogRead() преобразует напряжение на A5 (0–5 В) в число 0–1023.

  • При замкнутом датчике на A5 ≈ 5 В → значение около 1023.

  • При разомкнутом — благодаря резистору 10 kΩ пин подтянут к GND → значение близкое к 0.

  • Порог 512 выбран посередине диапазона и надёжно разделяет два состояния.

7. Пошаговый запуск

  1. Соберите схему по рисунку выше.

  2. Подключите Arduino, выберите плату UNO и COM-порт.

  3. Загрузите скетч. В Serial Monitor увидите значения с датчика.

  4. Наклоните плату: когда датчик окажется «контактами вниз», LED загорится.

8. Что может пойти не так

Симптом

Причина

Решение

LED всегда горит

Датчик постоянно замкнут (неверная ориентация)

Поверните переключатель или уменьшите резистор подтяжки

LED всегда погашен

Нет надёжного контакта шарика

Проверьте пайку, слегка постучите по датчику

Значение «плавает»

Датчик дребезжит при вибрациях

Добавьте delay(20) или усредняйте несколько чтений

9. Эксперименты

  • Измените пороговое значение, чтобы LED загорался только при сильном наклоне (например, >800).

  • Подайте сигнал на прерывание: вместо analogRead используйте цифровой вход и обработку прерываний attachInterrupt.

  • Управляйте реле и включайте сирену, если устройство перевернули.