Руководство по датчику наклона (инклинометру) с Arduino

В этой статье показано, как использовать модуль датчика наклона с Arduino. Датчик наклона часто называют инклинометром, переключателем наклона или датчиком с шариком. Использование датчика наклона — это простой способ обнаружения ориентации или наклона.

Знакомство с модулем датчика наклона

Модуль датчика наклона показан на следующем рисунке.

Модуль датчика наклона (инклинометра)

Датчик наклона позволяет определять ориентацию или наклон. Он обнаруживает, находится ли датчик в полностью вертикальном положении или наклонён.

Это делает его очень полезным для использования, например, в игрушках, роботах и других устройствах, методология работы которых зависит от наклона.

Как это работает?

Датчик наклона имеет цилиндрическую форму и содержит внутри свободно перемещающийся проводящий шарик с двумя проводящими элементами (полюсами) внизу.

Датчик наклона — принцип работы

Вот как это работает:

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

  • Когда датчик наклонён, шарик не касается полюсов, цепь разомкнута, и ток не протекает.

Таким образом, датчик наклона работает как переключатель, который включается или выключается в зависимости от его наклона. Поэтому он передаёт Arduino цифровую информацию — либо сигнал HIGH, либо LOW.

Где купить?

Вы можете перейти на Maker Advisor и найти лучшую цену на датчик.

Подключение выводов

Подключение датчика наклона к Arduino выполняется довольно просто. Вам нужно только подключить один вывод к цифровому пину Arduino, а GND — к GND.

Если вы подключаете датчик таким образом, необходимо активировать внутренний подтягивающий резистор Arduino для цифрового пина, к которому подключён датчик. В противном случае следует использовать внешний подтягивающий резистор номиналом 10 кОм в вашей цепи.

Подключение выводов датчика наклона к Arduino

Пример: Светодиод, чувствительный к наклону

Это простой пример, который поможет вам начать работу с датчиком наклона.

В этом примере светодиод будет выключен, если датчик находится в вертикальном положении, и будет включён, если датчик наклонён.

Необходимые компоненты

Вы можете использовать ссылки выше или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все детали для ваших проектов по лучшей цене!

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

Для этого примера вам нужно просто добавить светодиод к схеме из раздела «Подключение выводов».

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

Код

Чтобы выполнить этот пример, загрузите следующий код на вашу плату Arduino.

/*
 * Rui Santos
 * Complete Project Details https://randomnerdtutorials.com
 */


int ledPin = 12;
int sensorPin = 4;
int sensorValue;
int lastTiltState = HIGH;   // the previous reading from the tilt sensor

// the following variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long lastDebounceTime = 0;  // the last time the output pin was toggled
long debounceDelay = 50;    // the debounce time; increase if the output flickers

void setup(){
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  sensorValue = digitalRead(sensorPin);
  // If the switch changed, due to noise or pressing:
  if (sensorValue == lastTiltState) {
    // reset the debouncing timer
    lastDebounceTime = millis();
  }
  if ((millis() - lastDebounceTime) > debounceDelay) {
    // whatever the reading is at, it's been there for longer
    // than the debounce delay, so take it as the actual current state:
    lastTiltState = sensorValue;
  }
  digitalWrite(ledPin, lastTiltState);

  Serial.println(sensorValue);
  delay(500);
}

Просмотреть исходный код

Демонстрация

В итоге вот что у вас получится.

Демонстрация работы датчика наклона с Arduino

Заключение

Надеемся, что эта статья была для вас полезной.

Если вы хотите узнать больше о датчиках для Arduino, обязательно ознакомьтесь со следующими руководствами:

Спасибо за чтение.