Переключаемый датчик наклона представляет собой электронное устройство, которое определяет ориентацию объекта в пространстве и соответственно выдает на выходе сигнал высокого логического уровня (High или «1») или низкого (Low или «0»). В принципе его работы лежит тот факт, что в нем есть ртутный шарик, который перемещается и замыкает схему. Таким образом, датчик наклона может включать или выключать схему в зависимости от ориентации объекта в пространстве.

В этом проекте мы покажем как с помощью Arduino UNO можно взаимодействовать с датчиком наклона. Мы будем управлять светодиодом и зуммером в соответствии с выходом датчика наклона.
Внешний вид и схемотехнический принцип работы датчика наклона представлены далее. Это модуль датчика наклона, основанный на принципе замыкания цепи с помощью ртути, который при наклонении выдает «1» на выходной линии. Он требует 5 В постоянного тока для питания. Это трехвыводное устройство, состоящее из линии питания, заземления и информационного вывода. Он имеет стеклянную трубку, состоящую из двух электродов и жидкого ртутного шарика. Жидкий ртутный шарик замыкает и размыкает цепь при наклонении модуля в определенном направлении.


Схема подключения платы Arduino и датчика наклона приведена ниже. Чтобы подключить этот датчик к Arduino, для его работы требуется вход с напряжением 5 В. Это питающее напряжение подается с линии 5v платы Arduino UNO, а выход датчика наклона заводится на линию 4 платы Arduino. Светодиод подключен к линии 2 платы Arduino с резистором 220 Ом для ограничения тока до безопасного значения. А зуммер напрямую подключен к линии 3 платы Arduino.

Код программы (скетч) для Arduino, взаимодействующего с датчиком наклона очень прост. В модуле настройки (setup) мы определяем линии, подключенные к светодиоду и зуммеру, как выходные, а линию с датчика как входную. В основном цикле программы при получении от датчика наклона сигнала высокого логического уровня на 0,3 секунды включаем светодиод и зуммер, а затем отключаем их до следующего появления «1» на выходе датчика.
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, INPUT);
}
void loop() {
if (digitalRead(4) == 1)
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
delay(300);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(300);
}
}
© digitrode.ru