Подключение датчика наклона (вибрации) передающего сигнал в виде переменного сопротивления

В этой статье мы постараемся понять в общих чертах, как работают датчики (сенсоры) с сигналом в виде переменного сопротивления. Для примера возьмём датчик наклона SW-200D, который меняет собственное сопротивление в зависимости от измерений своего состояния.

Есть один нюанс! Микроконтроллеры, установленные на платах Ардуино, не могут считывать данные передаваемые в виде сопротивления. Им необходимо напряжение. Самым лучшим способом перевести сопротивление в напряжение - построить делитель напряжения. В делителе напряжения один из резисторов у нас будет постоянный, а вместо второго мы подсоединяем наш датчик, который и будет выступать в роли второго сопротивления. Мы знаем, что в делителе напряжения между двумя резисторами с одинаковыми характеристиками сопротивления, напряжение делится пополам, а если один из резисторов меняет свое сопротивление, меняется и напряжение между ними по известной формуле.  Если вы еще не знаете что такое делитель напряжения, изучите эту тему отдельно.

 Подключение датчика наклона SW-200D к плате Arduino

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

Далее заливаем минимальный скетч для проверки работы датчика.

#define SW_PIN A0 // Объявляем аналоговый пин A0 в глобальной переменной SW_PIN
 
void setup() // НАСТРОЙКИ
{
Serial.begin(9600); // инициируем последовательное соединение и задаем скорость передачи данных
}
 
void loop() // БЕСКОНЕЧНЫЙ ЦИКЛ
{
delay(500); // пауза пол секунды
int val = analogRead(SW_PIN); // считываем данные с аналогового пина А0
Serial.println(val); // записываем данные в последовательный порт
}

Откройте мониторинг порта в вашей программе Arduino IDE (Инструменты - Монитор порта), чтобы посмотреть, как передаются значения в зависимости от изменения положения датчика.

Мониторинг последовательного порта программы Arduino IDE

Мы видим, что наклоняя датчик в одну сторону (к серебряной ножке) значения стремятся к цифре 1023, а наклоняя датчик в другую сторону (к золотой ножке), значения стремятся к нулю. Основываясь на этих данных, давайте добавим два светодиода в нашу схему и допишем код программы так, чтобы в зависимости от того в какую сторону наклоняется датчик загорался определенный светодиод, а другой светодиод затухал.

Светодиоды реагирующие на датчик наклона

На светодиоды мы будем подавать напряжение с отдельных пинов Ардуино, конечно же через резисторы, а катоды светодиодов сводим к общей земле с платой Arduino.

Заливаем скетч

#define SW_PIN A0 // Объявляем аналоговый пин A0 в глобальной переменной SW_PIN
   
void setup() //НАСТРОЙКИ
  {
  pinMode(2, OUTPUT); // настраиваем 2 пин в режим выхода
  pinMode(3, OUTPUT); // настраиваем 3 пин в режим выхода
  }
     
void loop() // БЕСКОНЕЧНЫЙ ЦИКЛ
  {
  delay(500); // пауза пол секунды
  int val = analogRead(SW_PIN); // считываем данные с аналогового пина А0 и присваиваем их переменной val
  if (val > 500) // если значение переменной val больше 500
    {
    digitalWrite(3, HIGH); // подаем напряжение с пина 3 на левый светодиод
    digitalWrite(2, LOW); // убираем напряжение с пина 2
    }
  else  // если значение переменной val меньше 500
    {
    digitalWrite(3, LOW); // убираем напряжение с пина 3
    digitalWrite(2, HIGH); // подаем напряжение с пина 2 на правый светодиод
    }
  }

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

 

 

 

Добавить комментарий

Защитный код
Обновить

шт.
Корзина пуста
Принимаем к оплате: