ADXL335 — это аналоговый трехосный акселерометр, то есть датчик, с помощью которого можно получить угол относительного отклонения.  Фактически, это три разных акселерометра в одном корпусе, каждый из которых отвечает за свою собственную ось X, Y либо же Z.

Аналоговый акселерометр ADXL335

Вообще, Акселерометр — приспособление для измерения ускорения.  Однако, из общего курса школьно физики мы знаем, что ускорение бывает двух видов: динамическое и статическое.  С динамическим ускорением должно быть все понятно — толкнули датчик, придали ему ускорение, он должен это зафиксировать. Статическое ускорение — это воздействие силы тяжести на наш датчик. Дело в том, что к датчику даже в состоянии полного покоя приложено статическое ускорение равное g (ускорение свободного падения).

Датчик ADXL335 умеет улавливать оба этих ускорения. А зная проекции его вектора можно спокойно вычислить угол на который отклонился наш датчик относительно некого нулевого значения.

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

Аналоговый акселерометр ADXL335

Для начала разберемся с правой частью картинки, на которой меняет свое значение Zout (ось Z). Согласно этой картинке, если положить наш датчик контактами вниз, то значение по оси Z будет равно единице (точнее одному g). Данное значение, как было сказано —  проекция вектора статического ускорения на ось нашего датчика. Так как в данном случае вектор совпадает с осью Z, а ускорения свободного падения равняется g, мы и имеет значение Zout = 1g.
Если же мы перевернем датчик контактами вверх, то значение Zout изменится на противоположное. Стоит отметить, что все остальные ускорения равны нулю, связано это с уже упомянутым совпадением вектора статического ускорения с осью Z, а так же состоянием покоя всего датчика.
Аналогично можно рассмотреть все остальные пары. Единственное отличие в том, что датчик будет находится на ребре или боку.


Однако, вектор далеко не всегда будет совпадать с какой-либо из осей. Чаще всего этот вектор будет каким-либо распределен по всем трем осям — т.к. пространство трехмерное.

Аналоговый акселерометр ADXL335

О датчике ADXL335

  • Максимально допустимым значение напряжения для ADXL335 является 3,6 вольта
  • Датчик справляется с ускорениями до 3g. Это можно использовать например, чтобы определить находится ли вся конструкция в движении, и даже в каком направлении она двигается. Можно измерять ускорение при начале движения и тем самым делать его более плавным, без резких рывков.

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

Аналоговый акселерометр ADXL335

  • Внимание! Для питания выход 3v3 Arduino, а не 5v
  • Выходы X, Y, Z датчика соединить со входами ANALOG IN 0, 1, 2

Пример программного кода — программирование акселерометра

Обозначаем пару констант. ADC_ref — это максимальное значение в вольтах которое может снять аналоговый вход. analog_resolution — это разрешающая способность нашего аналогового входа. На arduino она равна 210 или 1024.
После объявления констант идет пара переменных в которых мы будем хранить показания снятые с нашего датчика и инициализация серийного порта, чтобы можно было получить какие-то данные на компьютере.
В функции loop мы в начале получаем данные с трех наших аналоговых пинов, к которым и подключен наш датчик, а после этого пересчитываем полученное число в вольты и выводим их на серийный порт. Зальем эту прошивку в нашу Arduino UNO, откроем серийный монитор (ctrl+shift+m) и соберем кое какие данные.

На включенном серийном мониторе можно увидеть:

Аналоговый акселерометр ADXL335

Где первый столбец — показания по оси X, второй — Y, третий — Z

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре + семь =