Электроснабжение для предприятий Без рубрики Датчик наклона на базе Ардуино своими руками

Датчик наклона на базе Ардуино своими руками

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

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

Для этого вам понадобится:

Практическая реализация датчика наклона на базе Arduino приведена на рисунке ниже:

Общий вид датчика  
Рисунок 1: общий вид датчика

В данном примере рассматривается установка акселерометра ADXL335 выпускаемого компанией Analog Devices который подключается к соответствующим выводам на микроконтроллере Arduino Uno, а от микроконтроллера сигналы переводятся на дисплей. Для сборки такой схемы удобно использовать заводскую макетную плату, хотя датчик наклона отлично сможет функционировать и на любой другой ровной поверхности, которую вы будете использовать в роли базы. Главная задача реализовать основной принцип датчика, который приведен на блок-схеме ниже.

Блок-схема датчика
Рис. 2: блок-схема датчика

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

Для реализации датчика наклона Arduino Uno выбран неспроста, он собран на базе микросхемы ATmega328 и включает в себя 14 цифровых выходов, 6 аналоговых, USB разъем для подключения к устройствам программирования, ICSP разъем, вход питания, и оснащается функцией сброса или обнуления данных. Также в данной плате установлен кварцевый генератор на 16МГц, предназначенный для поддержания стабильной работы всего микроконтроллера.

Несмотря на внушительный объем его элементов, Arduino Uno имеет оносительно небольшие размеры и его достаточно легко эксплуатировать. Для этого вам понадобиться подключить плату к ПК через USB вход для установки рабочих параметров и запитать посредством батареи или через адаптер. Программирование и дальнейшая эксплуатация производится  в операционной среде Arduino.

Содержание

  1. Как собрать датчик наклона?
  2. Тестирование работоспособности и корректировка параметров
  3. Что нужно для работы программы?

Как собрать датчик наклона?

Электрическая схема датчика наклона
Рис. 3: электрическая схема датчика наклона

Подключение акселерометра к микроконтроллеру осуществляется по такому принципу:

  • Вывод ST подключается к пину платы Arduino A0;
  • Вывод перемещений по оси Z подключается к пину платы Arduino A1;
  • Вывод перемещений по оси Y подключается к пину платы Arduino A2;
  • Вывод перемещений по оси X подключается к пину платы Arduino A3;
  • Вывод GND подключается к пину платы Arduino A4;
  • Вывод VCC подключается к пину платы Arduino A5.

Затем от микроконтроллера Ардуино производится подключение к дисплею, в данной ситуации состоящего из группы светодиодов. Для подключения от платы берутся выходы с 8 по 12  и пин питания на 5В, которые распределяются по логике схемы следующим образом:

  • Пин 5В является общей точкой подключения;
  • Восьмой подключается к светодиоду, сигнализирующему о наклоне в правую сторону;
  • Девятый подключается к светодиоду, сигнализирующему о стабильном положении датчика по центру (его, для отличия, мы делаем красного цвета, но это не принципиально);
  • Десятый подключается к светодиоду, сигнализирующему о перемещении датчика назад;
  • Одиннадцатый подключается к светодиоду, сигнализирующему о наклоне в левую сторону;
  • Двенадцатый подключается к светодиоду, сигнализирующему о наклоне датчика вперед.

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

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

Схема для печатной платы
Рисунок 4: схема для печатной платы

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

Таблица: уровни напряжения в контрольных точках

Точка на рисунке Напряжение  в точке, В
Т0 0
Т1 5
Т2 Ниже, чем в Т3
Т3 Выше, чем в Т2

Тестирование работоспособности и корректировка параметров

После электрического соединения элементов датчика наклона производится загрузка программы, на устройство через ПК, для чего вам необходимо:

  • Подключить микроконтроллер к компьютеру через USB переходник;
  • Загрузить программу (test.ino) с компьютера на Ардуино УНО;
  • Затем на компьютере откройте программную среду Arduino, в которой отображается исходный код от соответствующих выводов акселерометра;
  • Сбросьте данные и отметьте числовые изменения по всем трем осям (X, Y, Z), которые происходят при наклоне датчика влево, вправо.

Если вас не устраивает положение, в котором светодиод начинает загораться, его можно откорректировать. Для изменения угла наклона, при котором  датчик будет сигнализировать об изменении положения, вам понадобится:

  • Оставаясь в программной среде Arduino, начните наклонять датчик влево, когда угол наклона достигнет той отметки, в которой светодиод должен загораться, отметьте для себя – это будет значение кода «A_max», граница отключения светодиода при возвратном движении датчика будет такой же;
  • Для регулирования угла наклона вправо повторите ту же операцию, наклонив до нужного угла, отметьте для себя цифровое значение – это будет значение кода «A_min», та же величина прекратит горение при возвратном движении к нейтральной позиции датчика;
  • Эти значения нужно изменить в теле программы tiltdetection.ino, для чего запускается Arduino IDE, в строки «A_max» и «A_min» вносятся записанные вами ранее данные (рисунок 5);
    Снимок экрана программирования Arduino Uno
    Рис. 5. Снимок экрана программирования Arduino Uno
  • После этого сохраните внесенные изменения и заново загрузите откорректированную программу на микроконтроллер.

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

Что нужно для работы программы?

Так как микроконтроллер программируется на специально разработанной под него платформе Arduino IDE, никаких дополнительных языков программирования и специальных навыков по работе с ними вам иметь не нужно, достаточно просто подключить Arduino к компьютеру. Также стоит отметить, что микросхема  ATmega328 в Arduino Uno изначально содержит предварительно установленный механизм загрузки. Именно он позволяет программировать устройство без каких-либо аппаратных программаторов, а взаимодействие программной среды на компьютере и  микросхеме происходит по протоколу STK500.

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

Исходный код программы:

  Датчик наклона на базе Arduino (3,4 KB, скачано: 85)