Акселерометр ардуино: Ардуино: акселерометр MPU6050 | Класс робототехники

Гироскоп ардуино в категории «Техника и электроника»

Акселерометр и гироскоп модуль для Ардуино MPU-6050 (GY-521)

На складе в г. Софиевская Борщаговка

Доставка по Украине

93 грн

Купить

Софиевская Борщаговка

Модуль датчик акселерометр и гироскоп для Ардуино GY-9255

Доставка по Украине

263 грн

Купить

Акселерометр и гироскоп 3х осевой MPU6050 GY521 Arduino

На складе в г. Умань

Доставка по Украине

100 грн

Купить

Гироскоп акселерометр GY-521, MPU-6050 Arduino [#4-8]

На складе в г. Запорожье

Доставка по Украине

64 грн

Купить

Запорожье

3-х осьовий гіроскоп, акселерометр MPU-6050

Доставка по Украине

154 грн

Купить

Акселерометр 3-х осьовий ADXL345

Доставка по Украине

154 грн

Купить

Модуль акселерометр + гироскоп MPU-6050 GY-521

На складе

Доставка по Украине

77. 90 грн

Купить

Гироскоп + акселерометр + магнитометр + барометр + термометр GY-801

На складе в г. Одесса

Доставка по Украине

1 434 грн

Купить

Одесса

Модуль гироскоп GY-50 чип L3G4200D

На складе в г. Одесса

Доставка по Украине

102 грн

Купить

Одесса

Гироскоп + акселерометр + магнитометр + барометр GY-86

На складе в г. Одесса

Доставка по Украине

922 грн

Купить

Одесса

Гироскоп акселерометр GY521 чип MPU6050

На складе в г. Одесса

Доставка по Украине

82 грн

Купить

Одесса

GY-521 Arduino акселерометр гироскоп 3-осевой на MPU-6050

На складе в г. Ровно

Доставка по Украине

110 грн

Купить

Модуль акселерометра и гироскопа GY-512 MPU-6050 6DOF

Доставка из г. Ровно

73.45 грн

Купить

Гироскоп + акселерометр + магнитометр + барометр + термометр GY-801

На складе в г. Одесса

Доставка по Украине

1 571 грн

Купить

Одесса

Модуль гироскоп GY-50 чип L3G4200D

На складе в г. Одесса

Доставка по Украине

112 грн

Купить

Одесса

Смотрите также

Гироскоп + акселерометр + магнитометр + барометр GY-86

На складе в г. Одесса

Доставка по Украине

1 010 грн

Купить

Одесса

Гироскоп акселерометр GY521 чип MPU6050

На складе в г. Одесса

Доставка по Украине

90 грн

Купить

Одесса

Акселерометр трехосевой GY291 чип ADXL345

Доставка из г. Одесса

128 грн

Купить

Одесса

3-осевой гироскоп акселерометр GY-521 MPU-6050 для Arduino

Доставка по Украине

165 грн

172 грн

Купить

Акселерометр трехосевой GY291 чип ADXL345

Доставка из г. Одесса

140 грн

Купить

Одесса

Гироскоп + акселерометр + магнитометр GY-85

Доставка из г. Одесса

554 грн

Купить

Одесса

Гироскоп + акселерометр + магнитометр GY-85

Доставка из г. Одесса

607 грн

Купить

Одесса

MPU-6050 GY-521 акселерометр + гироскоп (3х осевой) для Ардуино MPU6050 I2C Module 3 Axis Gyroscope and Accele

Недоступен

125 грн

Смотреть

GY-521 MPU-6050 датчик ускорения, 3-осевой гироскоп и трехосевой акселерометр для ARDUINO

Недоступен

76.10 грн

Смотреть

Акселерометр и гироскоп 3х осевой MPU6050 GY521 Arduino (10432)

Недоступен

111.10 грн

Смотреть

Акселерометр и гироскоп MPU-6050 модуль GY-521

Недоступен

42 грн

Смотреть

Акселерометр и гироскоп MPU-6050 модуль GY-521

Недоступен

42 грн

Смотреть

GY-521 Акселерометр и гироскоп MPU-6050 модуль 6DOF

Недоступен

52 грн

Смотреть

Іграшка ГІРОСКОП

Недоступен

550 грн

Смотреть

Датчики положения для Ардуино по хорошей цене с доставкой

Датчики положения Ардуино

Сортувати: За замовчуванням Назва (А — Я) Назва (Я — А) Ціна (низька > висока) Ціна (висока > низька) Рейтинг (починаючи з високого) Рейтинг (починаючи з низького) Модель (А — Я) Модель (Я — А)

Показати 25 50 75 100

Показано з 1 по 4 із 4 (1 сторінок)

Для организации автоматического определения расположения устройства опытные и начинающие любители схемотехники используют датчик положения для Ардуино. Сенсоры представляют собой открытые компактные микросхемы, которые работают вместе с микроконтроллером и основным функциональным прибором. Датчик положения в пространстве Arduino может считывать показатели в зависимости от типа встроенных микродатчиков, в связи с чем самыми распространенными моделями называют: 

  • Гироскоп Arduino — позволяет обеспечить реакцию системы на изменение углов ориентации тела, на котором установлен сенсор.
  • Акселерометр на Ардуино — позволяет измерять ускорение тела под действием внешних сил. 

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

Гироскоп Ардуино: принцип работы

Гироскоп к Ардуино может работать в разных диапазонах — +- 200-1000° / s с питанием в пределах 3-5 В. В основе микросхем компактные платы со стандартными и цифровым/аналоговым выходами, а также питанием VCC и заземлением GND. Акселерометр и гироскоп Ардуино работают по одному идентичному принципу:

  • В основе сенсора посередине установлен микродатчик, измеряющий расстояние до ближайшего предмета.
  • При изменении положения устройство преобразует полученные данные о расстоянии в частотную величину.
  • Подается сигнал, прибор меняет направление.

Как подключить гироскоп к Ардуино

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

  • задание скетча;
  • проверка платы;
  • соединение выходов;
  • испытание и внедрение схемы в нужное устройство. 

Акселерометр Arduino

Большинство сенсоров имеют следующие показатели:

  • Питание — от 3,5 до 6 В.
  • Диапазоны измерений — +-2, 4, 8, 18 g.
  • Ток потребления — 500 мкА. 

Существует широкий выбор сенсоров, которые могут выполнять не только функцию акселерометра. Например, одним из самых популярных решений является акселерометр Ардуино GY 521 — он включает в себя гироскоп и термометр одновременно. Сенсор создан на базе микросхемы MPU-6050. 

Как подключить акселерометр к Ардуино

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

  • Действие на первом этапе, прежде чем соединить плату и акселерометр Arduino, — подключение микроконтроллера к ПК. Заранее установите Arduino IDE и запишите скетч с постоянными и переменными командами для вашего прибора.
  • Второй этап — создание связей схемы. Как и гироскоп, акселерометр Ардуино имеет стандартные выходы — питание, заземление, цифровой или аналоговый вход. 

Датчик положения на Ардуино в интернет-магазине Ekot

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

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


Акселерометр Arduino

с использованием ADXL345

В этом руководстве по акселерометру Arduino мы рассмотрим шаги по настройке схемы для дешевого и доступного акселерометра ADXL345.

В этом руководстве вы узнаете, как подключить акселерометр ADXL345 к Arduino Uno. Мы также покажем вам, как написать программу, использующую библиотеку датчиков Adafruit ADXL345.

ADXL345 — это недорогой 3-осевой МЭМС-акселерометр с низким энергопотреблением, который поддерживает последовательные интерфейсы I2C и SPI.

MEMS означает микроэлектромеханическую систему, что означает, что ADXL345 содержит микроскопический механический компонент, помогающий определить ускорение.

Вы также можете использовать ADXL345 на Raspberry Pi. Процесс установки совершенно другой, поэтому обязательно ознакомьтесь с учебным пособием, если вы решите использовать Pi.

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

Оборудование

Для выполнения этого руководства по акселерометру Arduino вам потребуется следующее оборудование.

Рекомендуется

Видео

В приведенном ниже видео показаны этапы сборки схемы акселерометра. Он также проведет вас через этапы развертывания кода на Arduino Uno с помощью Arduino IDE.

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

Adblock удаляет видео? Поддержите нас, подписавшись на наш сервис без рекламы.

Настройка схемы акселерометра Arduino

Схема акселерометра ADXL345 довольно проста, не требует сложных деталей или проводки и может быть подключена непосредственно к Arduino.

Ниже мы включили все шаги, которые необходимо выполнить для подключения акселерометра ADXL345 к Arduino Uno.

  • Подключите контакт GND ADXl345 к контакту GND на Arduino.
  • Провод VCC контакт ADXL345 к контакту 3v3 на Arduino.
  • Соедините контакт SCL ADXL345 с контактом SCL на Arduino.
  • Подключите контакт SDA ADXL345 к контакту SDA на Arduino.

Схема ниже также очень полезна для правильного подключения Arduino к ADXL345.

Если вы используете плату Adafruit ADXL345, вы также можете использовать соединение 5 В, поскольку эта коммутационная плата содержит схему для выравнивания напряжения до требуемых 3 В.

Импорт библиотек

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

Для этого проекта Arduino мы будем использовать библиотеку « Adafruit Unified Sensor » и библиотеку « Adafruit ADXL345 ».

1. Для начала откройте меню библиотеки в Arduino IDE, выбрав Sketch ( 1. ) -> Включить библиотеку ( 2. ) -> Управление библиотеками ( 3. )

2. В этом окне ищем Adafruit ADXL345 ( 1. ) и находим « Adafruit ADXL3» ( Adafruit ADXL3) 2 .), он должен быть единственным результатом поиска.

Установите последнюю версию библиотеки с помощью , нажав кнопку « Install » ( 3. ), как показано ниже.

3. Теперь в том же окне найдите « Adafruit Unified Sensor 9».0037» ( 1. ) и найти библиотеку ( 2. ).

Найдя , нажмите кнопку « Установить » ( 3. ), чтобы продолжить.

Код для акселерометра

1. В Arduino IDE введите следующие строки кода.

Мы объясним каждый раздел кода акселерометра Arduino, чтобы вы поняли, как все это работает и что делает каждый важный бит.

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

Библиотека « Wire » используется в библиотеке ADXL345, чтобы Arduino могла обмениваться данными с акселерометром с использованием последовательного протокола i2C.

Требуется библиотека « Adafruit_Sensor », поскольку она является основой библиотеки ADXL345, которую мы используем. Он обрабатывает несколько разных вещей для библиотеки ADXL345 и используется в качестве основы для большинства библиотек датчиков Adafruit.

Последняя библиотека, которую мы импортируем, это « Adafruit_ADXL345 » библиотека. Эта библиотека обрабатывает весь код для взаимодействия с акселерометром от Arduino.

Мы будем использовать эту библиотеку для считывания данных об ускорении с датчика.

Эта строка создает экземпляр библиотеки Adafruit ADXL345 для переменной « accel ».

Переменная « accel » будет иметь пользовательский объект, который обеспечивает доступ к многочисленным вспомогательным функциям для взаимодействия с акселерометром ADXL345.

Это “ setup() ”функция запускается автоматически при включении питания Arduino.

Начнем с запуска функции « Serial.begin() », чтобы Arduino могла отправлять сообщения через последовательное соединение. В эту функцию мы передаем скорость передачи 9600 .

После этого мы используем функцию « accel » объектов « begin() », чтобы начать подключение к нашему акселерометру ADXL345.

Далее мы проверяем результат, возвращаемый этой функцией. Если он возвращает « False » затем мы распечатываем сообщение на последовательный монитор, предупреждая пользователя о том, что нам не удалось получить доступ к акселерометру ADXL345.

Если произошла ошибка, мы запускаем бесконечный цикл, используя « while(1) », это гарантирует, что мы никогда не войдем в основной цикл. Чтобы выйти из этого цикла, вам нужно будет перезапустить Arduino.

Эта функция « loop() » автоматически запускается после завершения выполнения функции « setup() ».

В этой функции мы создаем переменную с именем « event », в котором используется структура « sensor_event_t ».

Затем мы используем функцию « getEvent () » нашего объекта « accel », передавая переменную события, которую мы определили ранее.

Эта функция « getEvent() » извлекает данные из акселерометра и заполняет структуру, которую мы передаем в нее (в данном случае переменную « event ») соответствующими данными.

Затем мы распечатываем X , Y и Z значения ускорения, которые были сохранены в нашей переменной « event ». Все эти три значения доступны через вектор « event.acceleration ».

Наконец, мы задержим повторный запуск цикла на 500 мс с помощью функции « delay() ».

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

Тестирование акселерометра Arduino ADXL345

1. Чтобы загрузить код на Arduino, нажмите кнопку « Подтвердить » ( 1. ), а затем нажмите кнопку « Загрузить » ( 390937 ) 7 )

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

Кроме того, убедитесь, что ваш Arduino подключен и выбран в разделе Инструменты -> Порт:

2. Теперь ваш акселерометр Arduino должен работать и передавать данные через последовательный монитор.

Сейчас самое подходящее время для загрузки Serial Monitor, чтобы вы могли видеть измерения, выполняемые акселерометром ADXL345.

Вы можете открыть программное обеспечение последовательного монитора Arduino, нажав « Tools » ( 1. ), затем нажав « Serial Monitor » ( 2. ) 7

3 3 , вы должны начать видеть данные с акселерометра ADX345, подключенного к вашему Arduino.

Я надеюсь, что к концу этого урока ваш акселерометр Arduino будет работать, и данные будут соответствовать вашим ожиданиям.

Если у вас есть какие-либо отзывы об этом уроке, пожалуйста, не стесняйтесь оставлять комментарии ниже.

Взаимодействие с акселерометром ADXL345 с использованием I2C

В предыдущем руководстве мы рассмотрели шину I2C в Arduino. Мы также узнали об использовании библиотеки проводов для связи с устройствами Inter-Integrated Circuit или I2C с использованием плат Arduino.

Шина I2C обычно используется цифровыми датчиками. При использовании этого интерфейса всего по двум проводам можно подключить сотни ведомых устройств.

Каждому устройству — будь то ведущее или ведомое устройство I2C — требуется только два канала для подключения к шине.

Хотя это протокол медленной передачи данных, его простота делает шину I2C одним из самых популярных интерфейсов среди цифровых датчиков. Как правило, датчики используют другие коммуникационные интерфейсы (такие как UART или SPI) только тогда, когда строго требуется полнодуплексная связь. В противном случае I2C является де-факто последовательным интерфейсом для всех цифровых датчиков.

Некоторые примеры датчиков, использующих шину I2C/TWI, включают: акселерометр ADXL345, гироскоп L3G4200D, магнитометр MC5883L, датчик давления BMP180 и часы реального времени DS1307.

В этом руководстве мы узнаем, как подключить акселерометр ADXL345

  к Arduino с помощью шины I2C/TWI.

Акселерометр ADXL345
ADXL345 представляет собой трехосевой акселерометр MEMS   датчик. Это также цифровой   инерционный датчик  , в котором используется конструкция емкостного акселерометра.

Особенности:

  • Выбираемый пользователем диапазон до +/-16 г
  • Максимальное разрешение на выходе 13 бит
  • Чувствительность 3,9 мг/младший бит
  • Максимальная частота выходных данных 3200 Гц

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

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

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

В качестве цифрового датчика ADXL345 имеет встроенные регистры, которые можно считывать и записывать для настройки параметров и считывания значений ускорения. Он предлагает четыре диапазона измерения: +/-2 г, +/-4 г, +/-8 г и +/-16 г.

Диапазон измерений по умолчанию составляет +/-2 g, что позволяет измерять ускорение до 19,6 м/с2 в любом направлении вдоль каждой оси.

Максимальные разрешения: 

  • 10-бит для +/-2g
  • 11-бит для +/-4g
  • 12-бит для +/-8 г
  • 13-бит для диапазона +/-16g

Разрешение по умолчанию — 10 бит. Для диапазона +/-2 г (по умолчанию) допускается чувствительность 3,9 мг/млн бит. Скорость передачи данных по умолчанию составляет 100 Гц. Все эти конфигурации можно изменить или установить, записав данные во встроенные регистры ADXL345. Контроллер/компьютер может считать ускорение, просто прочитав значения из регистров с 0x32 по 0x37.

Интерфейс ADXL345 с Arduino
Датчик ADXL345 имеет интерфейсы I2C и SPI для связи с любым контроллером или компьютером. Датчик поддерживает трех- и четырехпроводной SPI. Помимо этих последовательных интерфейсов, контакты прерывания датчика могут быть напрямую связаны с цифровыми каналами ввода/вывода контроллера/компьютера.

Поскольку Arduino также поддерживает шину I2C и SPI, ADXL345 можно подключить к Arduino, используя любой из них. В этом уроке мы будем использовать шину I2C.

Выводы I2C платы Arduino не переведены в ВЫСОКИЙ уровень. Однако датчик ADXL345 обычно доступен в виде модуля, в котором контакты I2C датчика уже на плате имеют высокий уровень. Следовательно, мы можем напрямую соединить контакты I2C датчика ADXL345 с портом I2C платы Arduino.

ADXL345 может питаться от 5-вольтового выхода Arduino. На этой принципиальной схеме показано взаимодействие ADXL345 с Arduino.

I2C в Arduino
Большинство плат Arduino имеют по крайней мере один модуль I2C, доступный через один или несколько портов. Плата Arduino может служить в качестве ведущего и ведомого устройства I2C.

Однако для чтения данных с цифрового датчика, такого как ADXL345, Arduino необходимо запрограммировать как мастер I2C. Его также можно запрограммировать для связи с устройствами I2C/TWI с помощью библиотеки проводов.

  • Настройте Arduino как мастер I2C, вызвав Wire.begin() без аргументов.
  • Мастер Arduino может установить тактовую частоту I2C с помощью метода Wire.setClock(), если тактовую частоту необходимо изменить.
  • Arduino может передавать данные ведомому устройству (например, ADXL345 для настройки конфигураций), вызывая методы Wire.beginTransmission(), Wire.write() и Wire.endTransmission().
  • Arduino также может запрашивать данные у ведомого устройства с помощью метода requestFrom() и извлекать запрошенные данные с помощью методов Wire.available() и Wire.read().

Общение с ADXL345 с использованием Arduino
Каждое ведомое устройство I2C должно иметь уникальный адрес I2C. ADXL345 имеет адресный контакт ALT, который может быть жестко подключен для установки адреса I2C этого цифрового датчика.

Если контакту ALT ADDRESS в модуле присвоен ВЫСОКИЙ уровень, 7-битный адрес I2C для устройства равен 0x1D, за которым следует бит R/W.

Это означает 0x3A для записи и 0x3B для чтения. Если контакт ALT ADDRESS подключен к земле, 7-битный адрес I2C для устройства равен 0x53 (за которым следует бит R/W). Это означает 0xA6 для записи и 0xA7 для чтения.

В модуле контакт ALT ADDRESS уже имеет высокий или низкий уровень. Адрес I2C датчика ADXL345, используемого в этом руководстве, — 0x53. При использовании этого адреса Arduino может получить доступ к датчику на шине I2C.

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

Вот таблица этих регистров:

При записи данных в ADXL345 датчик может быть адресован с помощью метода Wire.beginTransmission(). Первый байт, указывающий регистр ADXL345 (куда должны быть записаны данные), должен быть отправлен, а затем байт данных с использованием метода Wire. write(). Передача завершается только тогда, когда вызывается метод Wire.endTransmission().

При чтении данных из ADXL345 датчик должен быть адресован с помощью метода Wire.beginTransmission(). Первый байт, указывающий на регистр ADXL345 (куда должны быть прочитаны данные), должен быть записан мастером Arduino на шину I2C с помощью метода Wire.write().

Эта передача завершается только при вызове метода Wire.endTransmission(). Нулевые данные отправляются вместе с адресом регистра, когда их необходимо прочитать из регистра ADXL345. И сразу же после обращения к регистру для чтения мастер Arduino должен вызвать метод Wire.requestFrom(), чтобы прочитать значение выбранного регистра.

Настройка датчика ADXL345
Ниже приведены несколько простых шагов по настройке датчика ADXL345 для последовательной связи.

1.  Установите режим питания и скорость передачи данных, записав в регистр 0x2C. Этот регистр имеет следующие биты:

Если бит LOW_POWER установлен в 0, ADXL345 работает в нормальном режиме. Если установлено значение 1, ADXL345 работает в режимах пониженного энергопотребления, где уровень шума выше.

Биты с D3 по D0 выбирают скорость передачи данных в соответствии с этой таблицей:

2. Установите формат данных, записав в регистр 0x31. Он имеет эти биты:

Если бит SELF-TEST установлен в 1, к датчику прикладывается сила самопроверки, вызывающая сдвиг в выходных данных. Если он установлен на 0, принудительное самотестирование отключено.

Если бит SPI установлен в 1, ADXL345 использует трехпроводной режим SPI. Если он установлен на 0, он использует четырехпроводной режим SPI.

Если бит INT_INVERT установлен в 0, он устанавливает для прерываний активный ВЫСОКИЙ уровень, а если он установлен в 1, он устанавливает для прерываний активный НИЗКИЙ уровень.
Если для бита FULL_RES установлено значение 1, датчик выводит значение с полным разрешением (10 бит для +/- 2 г, 11 бит для +/- 4 г, 12 бит для +/- 8 г, 13 бит для +/- 16г). В противном случае, если установлено значение 0, используется 10-битное значение по умолчанию.

Если бит выравнивания установлен в 1, значения ускорения в регистрах с 0x32 по 0x37 выравниваются по левому краю. Если установлено значение 0, эти значения выравниваются по правому краю.

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

Биты диапазона D1 и D0 выбирают диапазон измерения в соответствии с этой таблицей:

3. Установите функции энергосбережения, записав в регистр 0x2D, ​​который имеет следующие биты:

Если бит связи установлен на 1, функции активности и бездействия связаны последовательно (это означает, что функция активности откладывается до обнаружения функции бездействия). Если установлено значение 0, обе функции выполняются параллельно. Функция бездействия относится к ситуации, когда ускорение ниже значения THRESH_INACT (или регистра 0x25) по крайней мере в течение времени, указанного TIME_INACT (регистр 0x26).

Если бит соединения установлен, а бит AUTO_SLEEP установлен в 1, он включает функцию автоматического перехода в спящий режим. В этом режиме ADXL345 автоматически переключается в спящий режим, если включена функция бездействия и обнаружено бездействие. Если активность также включена, ADXL345 автоматически выходит из спящего режима после ее обнаружения и возвращается к работе с выходной скоростью передачи данных, установленной в регистре BW_RATE.

Если бит AUTO_SLEEP установлен в 0, он отключает автоматическое переключение в спящий режим. Если бит ссылки не установлен, функция AUTO_SLEEP отключена, и установка бита AUTO_SLEEP не влияет на работу устройства.

Если бит измерения установлен в 1, ADXL345 работает в режиме измерения. Если он равен 0, ADXL345 работает в режиме ожидания.

Если бит Sleep установлен в 1, ADXL345 работает в спящем режиме. Если он равен 0, ADXL345 работает в обычном режиме. Спящий режим подавляет DATA_READY, останавливает передачу данных в FIFO и переключает частоту дискретизации на заданную битами пробуждения.

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

Чтение ускорения с ADXL345
Ускорение по:

  • Ось X считывается из регистров 0x32 и 0x33
  • Ось Y считывается из регистров 0x34 и 0x35
  • Ось Z считывается из регистров 0x36 и 0x37

Необработанные значения представляют собой 16-битные числа по два, чтобы дополнить форму. Разрешение, выравнивание значений по левому/правому краю и диапазон измерения устанавливаются в соответствии со значением, записанным в регистр 0x31 ADXL345.

В любом диапазоне измерения можно выбрать 10-битное разрешение. 10-битное значение ускорения можно отрегулировать влево или вправо. Если значение скорректировано вправо, 10-битные значения ускорения могут быть получены путем маскирования второго байта (который считывается из 0x33 для оси x, 0x35 для оси y и 0x37 для оси z) — с 0x03, сдвигая его вправо восемь раз. Затем два байта объединяются (0x32 и 0x33; 0x34 и 0x35; 0x36 и 0x37) в 16-битное целое число.

Если значение скорректировано влево, 10-битные значения ускорения могут быть получены сдвигом вправо первого байта (который читается из 0x32 для оси x, 0x34 для оси y и 0x36 для оси z). ось) шесть раз, маскируя второй байт (который читается из 0x33 для оси x, 0x35 для оси y и 0x37 для оси z) с 0x3F во временный байт. Его временный байт сдвигается влево два раза, добавляя временный байт к первому байту. Затем шесть раз сдвиньте первый байт влево и объедините два байта (0x32 и 0x33; 0x34 и 0x35; 0x36 и 0x37) для получения 16-разрядного целого числа.

Это 10-битное значение находится в диапазоне от 0 до 1024. Ускорение измеряется в обоих направлениях вдоль оси. Таким образом, если значение больше 511, вычтите из него 1024, чтобы получить отрицательное значение, указывающее другое направление оси.

Для 10-битного разрешения значение ускорения в единицах силы тяжести можно получить, умножив это значение на 4 мг (0,004) для диапазона +/- 2g, 7,8 мг (0,0078) для диапазона +/- 4g, 15,6 мг (0,0156) для диапазона +/- 8 г или 31,25 мг (0,03125) для диапазона +/- 16 г.

Если выбрано 11-битное разрешение для диапазона +/- 4g и значения ускорения отрегулированы правильно, 11-битные значения ускорения могут быть получены путем маскирования второго байта (чтение с 0x33 для оси x, 0x35 для оси y и 0x37 для оси z) — с 0x07, восьмикратным сдвигом вправо и объединением двух байтов (0x32 и 0x33; 0x34 и 0x35; 0x36; и 0x37) для 16-битного целого числа. .

Если выбрано 11-битное разрешение для диапазона +/- 4g и значения ускорения отрегулированы влево, 11-битные значения ускорения можно получить, сдвинув вправо первый байт (читается с 0x32 по оси X). , 0x34 для оси y и 0x36 для оси z) пять раз, маскируя второй байт (0x33 для оси x, 0x35 для оси y и 0x37 для оси z) с 0x1F до временный байт. Затем трижды сдвиньте временный байт влево, добавьте временный байт ко второму байту, сдвиньте второй байт влево пять раз и, наконец, объедините два байта (0x32 и 0x33; 0x34 и 0x35; 0x36; и 0x37) для 16-битное целое число.

Это 11-битное значение находится в диапазоне от 0 до 2048. Ускорение измеряется в обоих направлениях вдоль оси. Итак, если значение больше 1023, вычтите из него 2048, чтобы получить отрицательное значение, указывающее на другое направление оси.

Для 11-битного разрешения в диапазоне +/- 4 g значение ускорения в единицах силы тяжести можно получить, умножив это значение на 3,9 мг (0,0039).

Если выбрано 12-битное разрешение для диапазона +/- 8g и значения ускорения отрегулированы правильно, 12-битные значения ускорения могут быть получены путем маскирования второго байта (чтение с 0x33 для оси x, 0x35 для оси y и 0x37 для оси z) — с 0x0F, восьмикратным сдвигом вправо и объединением двух байтов (0x32 и 0x33; 0x34 и 0x35; 0x36; и 0x37) для 16-битного целого числа. .

Если выбрано 12-битное разрешение для диапазона +/- 8g и значения ускорения отрегулированы влево, 12-битные значения ускорения можно получить, сдвинув вправо первый байт (читается с 0x32 для оси X). , 0x34 для оси y и 0x36 для оси z) четыре раза, маскируя второй байт (0x33 для оси x, 0x35 для оси y и 0x37 для оси z) с помощью 0x0F во временный байт. Затем сдвиньте временный байт влево четыре раза, добавьте временный байт к первому байту, сдвиньте второй байт влево четыре раза и объедините два байта (0x32 и 0x33; 0x34 и 0x35; 0x36; и 0x37) для 16- битовое целое.

Это 12-битное значение находится в диапазоне от 0 до 4096. Ускорение измеряется в обоих направлениях вдоль оси. Итак, если значение больше 2047, отнимите от него 4096, чтобы получить отрицательное значение, указывающее на другое направление оси.

Для 12-битного разрешения в диапазоне +/- 8 г значение ускорения в единицах силы тяжести можно получить, умножив это значение на 3,9 мг (0,0039).

Если выбрано 13-битное разрешение для диапазона +/- 16g и значения ускорения отрегулированы правильно, 13-битные значения ускорения могут быть получены путем маскирования второго байта (чтение с 0x33 для оси X, 0x35 для оси Y и 0x37 для оси Z) — с 0x1F, восьмикратным сдвигом вправо и объединением двух байтов (0x32 и 0x33; 0x34 и 0x35; 0x36; и 0x37) для 16-битного целого числа. .

Если выбрано 13-битное разрешение для диапазона +/- 16g и значения ускорения отрегулированы влево, 13-битные значения ускорения можно получить, сдвинув вправо первый байт (читается с 0x32 по оси X). , 0x34 для оси y и 0x36 для оси z) трижды, маскируя второй байт (чтение из 0x33 для оси x, 0x35 для оси y и 0x37 для оси z) — с 0x03 во временный байт, сдвинуть временный байт влево пять раз, добавить временный байт к первому байту, сдвинуть второй байт влево три раза и объединить два байта (0x32 и 0x33; 0x34 и 0x35; 0x36; и 0x37) для 16-битного целого числа.

Это 13-битное значение находится в диапазоне от 0 до 8192. Ускорение измеряется в обоих направлениях вдоль оси. Итак, если значение больше 4095, вычтите из него 8192, чтобы получить отрицательное значение, указывающее на другое направление оси.

Для 12-битного разрешения для диапазона +/- 16 г значение ускорения в единицах силы тяжести можно получить, умножив это значение на 3,9 мг (0,0039).

Обнаружение наклона с помощью ADXL345
Значение ускорения, полученное в единицах силы тяжести, может находиться в диапазоне от +2g до -2g, или от +4g до -4g, или от +8g до -8g, или от +16g до -16g — в зависимости от выбранного диапазона измерения.

Значение ускорения включает в себя как статическое ускорение, вызванное силой тяжести, так и динамическое ускорение, вызванное движением или ударом.

На этом изображении показаны значения ускорения в единицах силы тяжести из-за силы тяжести:

Наклон датчика можно определить по знаку и значению ускорения по осям x, y и z. Когда на датчике ADXL345 работает только статическое ускорение, значение ускорения по заданной оси будет приблизительно равно +1g или -1g.

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

Настройка ADXL345 на +/- 2g, 10-битное разрешение и ускорение чтения с помощью Arduino
Следующий скетч Arduino настраивает датчик ADXL345 на диапазон измерения +/- 2g и использует 10-битное разрешение.

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

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