Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

3-осевые микромеханические акселерометры ADXL345 и ADXL346 с микропотреблением и детектором событий

Рис. 1. Структурная схема ADXL345 и расположение выводов

Таблица. 1. Назначение выводов ADXL345

Номер вывода

Обозначение

Описание

1

VDD I/O

Питание интерфейса ввода-вывода

2

GND

Должен быть подключен к общему проводу

3

Reserved

Зарезервирован, должен быть подключен к VS
или оставаться свободным

4

GND

Должен быть подключен к общему проводу

5

GND

Должен быть подключен к общему проводу

6

VS

Питание

7

__

CS

Вход выбора МС, активный низкий

8

INT1

Выход прерывания 1

9

INT2

Выход прерывания 2

10

NC

Не подсоединен

11

Reserved

Зарезервирован, должен быть подсоединен к общему проводу или оставаться свободным

12

SDO/ALT ADDRESS

Выход данных для SPI или выбор адреса для I2C

13

SDA/SDI/SDIO

Данные для I2C или вход данных для 4-проводного SPI, или вход и выход данных для 3-проводного SPI

14

SCL/SCLK

Синхронизация для данных

Распознавание легких ударов

Это событие происходит, в случае если измеренная величина ускорения превысит пороговое значение (хранящееся в регистре THRESH_TAP) на время не более того значения, которое хранится в регистре DUR.

При этом будет установлен бит SINGLE_TAP.

Если за первым превышением порога, по истечении времени LATENCY TIME и в течение времени TIME WINDOW FOR SECOND TAP (см. рис. 2), которое определяется регистром WINDOW, последует второе событие, определяемое по описанным выше правилам, установится бит DOUBLE_TAP.

Рис. 2. Распознавание легких ударов

Распознавание активности (ускорения)

Наличие активности определяется, когда величина измеренного ускорения превышает значение, хранящееся в регистре THRESH_ACT.

Отсутствие активности обнаруживается, когда величина ускорения в течение времени TIME_INACT меньше значения, хранящегося в регистре THRESH_INACT.

Описанный алгоритм работы соответствует режиму dc-coupled. Прибор также поддерживает режим работы ac-coupled, в котором, в соответствующих случаях, со значениями регистров THRESH_ACT и THRESH_INACT сравнивается модуль разницы между текущим значением ускорения и опорным — значением ускорения в начале события.

Для каждой оси возможен выбор, будет ли ускорение вдоль нее влиять на обнаружение событий активности (см. описание регистра ACT_INACT_CTL в [1]).

Диагностика состояния свободного падения

Состояние свободного падения детектируется, если величина ускорения меньше значения THRESH_FF в течение времени TIME_FF. Причем, всегда учитываются значения по всем осям, и алгоритм обработки соответствует режиму dc-coupled.

Используя сигнал с датчика, можно определить высоту падения. В простейшем случае достаточно измерить время, в течение которого генерируется событие FREE_FALL. Так например, если событие длится около 300 мс, то

Подробнее пример реализации алгоритма на Си см. в [4].

Режимы работы FIFO

Буфер FIFO позволяет снизить вычислительную нагрузку на управляющий МК и предназначен для временного хранения результатов измерения. В ADXL345 буфер имеет глубину в 32 измерения по каждой из осей и может функционировать в одном из следующих четырех режимов.

Bypass Mode — буфер отключен.

FIFO Mode — в случае переполнения буфера новые результаты измерения не сохраняются.

Stream Mode — в случае переполнения буфера самые старые значения заменяются новыми.

Trigger Mode — в этом режиме буфер функционирует аналогично Stream Mode до наступления события, определяемого полем trigger bit в регистре FIFO_CTL. После этого в буфере сохраняется число последних значений, определяемое в регистре FIFO_CTL, и дальнейшее функционирование продолжается аналогично режиму FIFO Mode.

Рекомендации по использованию FIFO см. в [5].

Примеры применения

Мониторинг состояния персонала или пациентов

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

Пример кривых, отражающих величину ускорения при падении, показан на рисунке 3. В данном случае падение является не совсем свободным: тело «валится», поэтому характер изменения ускорения по осям отличается от случая свободного падения.

Рис. 3. Характер изменения ускорений при не совсем свободном падении

В процессе падения можно выделить несколько стадий.

1. Начало падения. При свободном падении эта стадия характеризуется состоянием невесомости. Величина векторной суммы ускорений по всем трем осям близка к нулю. При падении отличном от свободного величина векторной суммы ускорений по трем осям не близка к нулю, но меньше 1g. Это первый признак падения (зона 1 на рис. 3).

2. Столкновение с поверхностью. По окончании падения происходит столкновение с поверхностью, что наблюдается на графике как резкое увеличение ускорения, вплоть до перегрузки датчика. Это второй признак падения (зона 2 на рис. 3).

3. Неподвижность. Человек не может подняться после падения немедленно — какое-то время он неподвижен. Это третий признак падения (зона 3 на рис. 3).

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

Измерение величины перемещения и вибродиагностика

В случае линейных синусоидальных колебаний их амплитуду достаточно просто вычислить. Как известно из курса физики [8], в случае гармонических синусоидальных колебаний амплитуда ускорения, частота и амплитуда колебаний связаны формулой:

,

где X0– амплитуда колебаний, a0– амплитуда ускорения,
ω – круговая частота колебаний.

Если необходимо определить текущее положение прибора с акселерометром, а движение не является равноускоренным, следует дважды провести интегрирование по времени с учетом начальных значений ускорения свободного падения, положения и скорости, как показано на рисунке 4 [9].

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

Полоса частот ADXL345 ограничена 1600 Гц, что может оказаться недостаточным. В этом случае целесообразнее использовать ADXL001 с полосой частот до 22 кГц и аналоговым выходом.

Рис. 4. Определение местоположения с использованием акселерометра

Встроенный в механический узел датчик в этом случае должен содержать полосовой фильтр и амплитудный детектор с механизмом сигнализации. Для цифровой спектральной фильтрации сигнала с акселерометра вовсе не обязательно заниматься программированием на языках высокого уровня, можно применить МК семейства SigmaDSP® производства ADI. Подробнее об этом семействе см. [17].

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

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

Построение пространственной картины измерений

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

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

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

Интерфейсы пользователя

Удобство применения бытовой техники имеет решающее значение в условиях конкуренции. Какой бы совершенной ни была та или иная технология, она едва ли станет успешной, если разработчикам не удалось сделать ее использование максимально интуитивным и привлекательным. Помочь завоевать будущего пользователя может применение акселерометров. Уже сейчас на рынке появилось немало устройств с недорогими акселерометрами, как специально ориентированными на использование этой технологии, так и содержащими этот компонент как опцию, благо софт в большинстве устройств можно обновить. Частными случаями такого применения является: изменение ориентации изображения на экране мобильного устройства или ноутбука; учет ориентации изображения в фотоаппарате или фоторамке; управление прокруткой изображения при встряхивании или наклоне мобильного телефона [14, 15].

Некоторые практические рекомендации по обработке данных с акселерометра при реализации интерфейсов можно найти в [16].

Детектирование свободного падения портативной аппаратуры

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

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

Контроль сохранности грузов

Не секрет, что большая часть электронной и высокоточной механической аппаратуры резко отрицательно относится к ударам и требует бережного отношения при перевозке и эксплуатации. Как при сервисном обслуживании или перед вводом техники в эксплуатацию определить, были ли нарушены условия транспортировки и хранения? Установив акселерометр в прибор или укомплектовав упаковку электронным самописцем на базе акселерометра, всегда можно будет однозначно дать ответ на этот вопрос, причем в процессе эксплуатации прибора датчик может с успехом выполнять другие описанные выше функции. Акселерометры ADXL345 и ADXL346 прекрасно подойдут на эту роль, т.к. они обладают крайне низким потреблением и способны не только пробудить микроконтроллер при выходе величины ускорения за установленное пороговое значение, но и благодаря режиму работы FIFO Trigger Mode способны сохранить данные, отражающие картину происходящего до того, как хост-контроллер будет готов их принять для последующей обработки. Микропрограмме контроллера останется вычислить модуль вектора ускорения и сравнить его с заданным значением для принятия решения о нарушении допустимых условий транспортировки или эксплуатации.

Возможный алгоритм работы микропрограммы хост-контроллера следующий.

1. Зафиксировать текущие значения ускорения по осям.

2. В зависимости от предъявляемых условий, настроить пороги как сверху, так и снизу.

3. Перевести МК в спящий, а акселерометр – в экономичный режим.

4. Ожидание прерывания от акселерометра.

5. При поступлении сигнала прерывания начать непрерывное считывание данных с акселерометра.

6. Считать данные и вычислить модуль вектора ускорения.

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

8. Проверить на установившееся значение. Если состояние не меняется, перейти к п. 1, иначе см. п. 6.

Для полноты информации необходимо указать, что для данного применения имеется специализированный компонент ADIS16240, способный отслеживать пиковые значения суммы квадратов измерений, полученных по всем трем осям. В сравнении с ADXL345, ADXL346, это готовый модуль с диапазоном измерений ±19g, однако его стоимость приблизительно на порядок выше.

Средства разработчика

Для разработки устройств с использованием акселерометров и оценки их возможностей Analog Devices выпускает специальные наборы. Для ADXL345 доступны наборы двух видов — на базе универсальной оценочной платы для инерциальных систем, внешний вид которого представлен на рисунке 5, и мини-набора разработчика (см. рис. 6).

Рис. 5. Внешней вид отладочного набора на базе универсальной отладочной платы для инерционных систем

Рис. 6. Схема и внешний вид мини-набора разработчика

Отладочный набор на базе универсальной оценочной платы для инерциальных систем включает в себя:

– микропотребляющий акселерометр ADXL345;

– универсальную материнскую плату для инерциальных систем;

– специфическую для каждого акселерометра дочернюю плату;

– стандартный USB-кабель для питания набора и передачи данных;

– графическую пользовательскую среду для ПВМ.

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

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

Рис. 6. Схема и внешний вид мини-набора разработчика

Мини-набор предназначен для подключения акселерометра к системе сбора данных разработчика и упрощения задачи монтажа в процессе оценки возможностей датчика.

Оценочные средства и образцы МК можно заказать в ООО «ЭЛТЕХ».

Выводы

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

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

ЛИТЕРАТУРА

1. Техническое описание компонента. www.analog.com/static/imported-files/data_sheets/ADXL345.pdf.

2. Пресс-релиз//www.analog.com/en/sensors/inertial-sensors/adxl345/products/1_19_09_ADIS_MEMS_Motion_Sensor_Delivers/press.html.

3. Краткий перевод на сайте ООО «ЭЛТЕХ»//ww.eltech.spb.ru/news.html?nid=650.

4. Определение состояния свободного падения//www.analog.com/library/analogdialogue/archives/43-07/fall_detector.html, www.analog.com/static/imported-files/application_notes/AN-1023.pdf.

5. Использование буфера FIFO//www.analog.com/static/imported-files/application_notes/AN-1025.pdf.

6. Сайт, посвященный вибродиагностике//www.vibration.ru.

7. Акселерометры: фантазии и реальность//www.analog.com.ru/Public/ADXL.pdf.

8. Курс физики//window.edu.ru/window_catalog/files/r61416/physics.pdf.

9. Инерциальная навигация//www.krugosvet.ru/enc/nauka_i_tehnika/aviaciya_i_kosmonavtika/INERTSIALNAYA_NAVIGATSIYA. html.

10. Альманах//www.eltech.spb.ru/pdf/almanah/alm_2007_1_7.pdf.

11. Ю.Г. Мартыненко. Инерциальная навигация//Соросовский образовательный журнал. №8. 1998 г.//www.pereplet.ru/nauka/Soros/pdf/9808_102.pdf.

12. Интерпретация измерений ускорений в инерциальной навигации//www.ioffe.rssi.ru/journals/jtf/2004/05/p134-135.pdf.

13. Книги и пособия издательства ИТМО: http://books.ifmo.ru/?out=stat&id=1.

14. 3D news//www.3dnews.ru/tags/%D0%B0%D0%BA%D1%81%D0%B5%D0%BB%D0%B5%D1%80%D0%BE%D0%BC%D0%B5%D1%82%D1%80.

15. Новостной портал MobileDevice.ru: http://www.mobiledevice.ru/bounce-boing-voyage-nokia-Mobile-prilozhenie-igra-akselerometr-d.aspx.

16. Принципы разработки ПО для iPhone с использованием акселерометра//http://habrahabr.ru/blogs/macosxdev/65148.

17. Страница семейства цифровых сигнальных процессоров SigmaDSP®//www.analog.com/en/embedded-processing-dsp/sigmadsp/processors/index. html.

ADXL345 – подключение модуля акселерометра | RadioLaba.ru

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

          #include <P16F628A.INC>

            LIST        p=16F628A    

            __CONFIG    H’3F18′             ;Конфигурация микроконтроллера

                                              

Sec           equ         20h               ;вспомогательный регистр счета

Sec1          equ         21h               ;вспомогательный регистр счета

nomer         equ         22h               ;регистр хранения кода ascii символа

scetbit       equ         23h               ;регистр счета кол-ва бит  

perem         equ         24h               ;вспомогательный регистр приема/передачи байта по spi                

temp          equ         25h               ;вспомогательный регистр счета

tmp_symb      equ         26h               ;вспомогательный регистр счета для таблицы данных

 

shet          equ         27h               ;регистры подпрограммы преобразования двоичного числа

bcd1          equ         28h               ;в десятичное

bcd2          equ         29h               ;

bcd3          equ         2Ah               ;

rezLH         equ         2Bh               ;

rezLL         equ         2Ch               ;

 

data_x0       equ         30h               ;регистры приема и передачи данных по SPI для акселерометра

data_x1       equ         31h               ;

data_y0       equ         32h               ;

data_y1       equ         33h               ;

data_z0       equ         34h               ;

data_z1       equ         35h               ;

kol_byte      equ         36h               ;счетчик кол-ва байт для приема/передачи по SPI

adr_byte      equ         37h               ;регистр адреса для приема/передачи по SPI

                      

#DEFINE       res_lcd     PORTB,4           ;присвоение названий линиям ввода-вывода

#DEFINE       cs          PORTB,5           ;для работы с LCD дисплеем

#DEFINE       dat_com     PORTB,6           ;

#DEFINE       sdata       PORTB,7           ;

#DEFINE       sclk        PORTA,1           ;

 

#DEFINE       int_1       PORTB,0           ;присвоение названий линиям ввода-вывода

#DEFINE       cs_aks      PORTB,1           ;для работы с акселерометром ADXL345

#DEFINE       sda_aks     PORTB,2           ;

#DEFINE       scl_aks     PORTB,3           ;

 

#DEFINE       led         PORTA,0           ;светодиод индикации передачи данных

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              org         0000h             ;начать выполнение программы с адреса 0000h

              goto        Start             ;переход на метку Start

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

                                            

Start         movlw       b’00000010′       ;установка значений выходных защелок порта A    

              movwf       PORTA             ;

              movlw       b’00111110′       ;установка значений выходных защелок порта B    

              movwf       PORTB             ;

              

              movlw       b’00000111′       ;выключение компараторов

              movwf       CMCON             ;

 

              bsf         STATUS,RP0        ;выбрать 1-й банк    

              movlw       b’00000001′       ;настройка линий ввода\вывода порта B      

              movwf       TRISB             ;RB0 – на вход, остальные на выход

              movlw       b’11111100′       ;настройка линий ввода\вывода порта A  

              movwf       TRISA             ;RA0, RA1 на выход, остальные на вход                        

              bcf         STATUS,RP0        ;выбрать 0-й банк    

              

              call        init_lcd          ;вызов подпрограммы инициализации дисплея

              call        clear_lcd         ;вызов подпрограммы очистки дисплея

              call        viv_not           ;вывод на дисплей сообщения “— “

              call        paus_aks          ;вызов подпрограммы паузы для полного включения акселерометра

              call        aks_init          ;вызов подпрограммы инициализации акселерометра

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;              

 

met_1         btfss       int_1             ;опрос линии прерывания акселерометра

              goto        met_1             ;нет прерывания: переход на метку met_1

 

              bsf         led               ;получено прерывание, включаем светодиод

              movlw       . 50

              movwf       adr_byte          ;адрес первого регистра результата измерения

              movlw       .6

              movwf       kol_byte          ;считать 6 байт

              call        priem_spi         ;вызов подпрограммы чтения по spi

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              call        ust_cur_1         ;вызов подпрограммы установки курсора в позицию X0-Y0

              movlw       ‘X’               ;вывод символа ‘X’

              call        viv_symb          ;

              movlw       ‘:’               ;вывод символа ‘:’

              call        viv_symb          ;

 

              movf        data_x0,W         ;Загрузка двоичных значений ускорения по оси X

              movwf       rezLL             ;в регистры подпрограммы двоично-десятичное преобраз.

              movf        data_x1,W         ;            

              movwf       rezLH             ;

 

              btfss       rezLH,1           ;проверка отрицательного числа

              goto        met_2             ;число положительное, переход на метку met_2

              movlw       ‘-‘               ;число отрицательное, вывод символа ‘-‘

              call        viv_symb          ;

              comf        rezLL,F           ;инвертирование значения ускорения

              comf        rezLH,W           ;

              andlw       b’00000011′       ;обнуление незначащих битов

              movwf       rezLH             ;

              movlw       . 1                ;прибавление числа 1, для получения положительного

              addwf       rezLL,F           ;числа

              btfsc       STATUS,C          ;

              incf        rezLH,F           ;

              goto        met_3             ;переход на метку met_3

              

met_2         movlw       ‘ ‘               ;вывод символа ‘ ‘

              call        viv_symb          ;

              movlw       b’00000011′       ;обнуление незначащих битов

              andwf       rezLH,F

 

met_3         call        bin2bcd           ;вызов подпрограммы двоичо-десятичного преобразования              

              call        vivod_usk         ;вызов подпрограммы вывода на дисплей значения ускорения

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              call        ust_cur_2         ;вызов подпрограммы установки курсора в позицию X0-Y1

              movlw       ‘Y’               ;вывод символа ‘Y’

              call        viv_symb          ;

              movlw       ‘:’               ;вывод символа ‘:’

              call        viv_symb          ;

 

              movf        data_y0,W         ;Загрузка двоичных значений ускорения по оси Y

              movwf       rezLL             ;в регистры подпрограммы двоично-десятичное преобраз.

              movf        data_y1,W         ;

              movwf       rezLH             ;              

    

              btfss       rezLH,1           ;проверка отрицательного числа

              goto        met_4             ;число положительное, переход на метку met_4

              movlw       ‘-‘               ;число отрицательное, вывод символа ‘-‘

              call        viv_symb          ;

              comf        rezLL,F           ;инвертирование значения ускорения

              comf        rezLH,W           ;

              andlw       b’00000011′       ;обнуление незначащих битов

              movwf       rezLH             ;

              movlw       .1                ;прибавление числа 1, для получения положительного

              addwf       rezLL,F           ;числа

              btfsc       STATUS,C          ;

              incf        rezLH,F           ;

              goto        met_5             ;переход на метку met_5

              

met_4         movlw       ‘ ‘               ;вывод символа ‘ ‘

              call        viv_symb          ;

              movlw       b’00000011′       ;обнуление незначащих битов

              andwf       rezLH,F

 

met_5         call        bin2bcd           ;вызов подпрограммы двоичо-десятичного преобразования            

              call        vivod_usk         ;вызов подпрограммы вывода на дисплей значения ускорения

 

              call        ust_cur_3         ;вызов подпрограммы установки курсора в позицию X0-Y2

              movlw       ‘Z’               ;вывод символа ‘Z’

              call        viv_symb          ;

              movlw       ‘:’               ;вывод символа ‘:’

              call        viv_symb          ;

 

              movf        data_z0,W         ;Загрузка двоичных значений ускорения по оси Z

              movwf       rezLL             ;в регистры подпрограммы двоично-десятичное преобраз.

              movf        data_z1,W         ;

              movwf       rezLH             ;              

  

              btfss       rezLH,1           ;проверка отрицательного числа

              goto        met_6             ;число положительное, переход на метку met_6

              movlw       ‘-‘               ;число отрицательное, вывод символа ‘-‘

              call        viv_symb          ;

              comf        rezLL,F           ;инвертирование значения ускорения

              comf        rezLH,W           ;

              andlw       b’00000011′       ;обнуление незначащих битов

              movwf       rezLH             ;

              movlw       .1                ;прибавление числа 1, для получения положительного

              addwf       rezLL,F           ;числа

              btfsc       STATUS,C          ;

              incf        rezLH,F           ;

              goto        met_7             ;переход на метку met_7

              

met_6         movlw       ‘ ‘               ;вывод символа ‘ ‘

              call        viv_symb          ;

              movlw       b’00000011′       ;обнуление незначащих битов

              andwf       rezLH,F

 

met_7         call        bin2bcd           ;вызов подпрограммы двоичо-десятичного преобразования              

              call        vivod_usk         ;вызов подпрограммы вывода на дисплей значения ускорения

 

              bcf         led               ;выключаем светодиод

              goto        met_1             ;переход на метку met_1

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

vivod_usk     movf        bcd1,W            ;извлечения разряда десятков тысяч  

              andlw       b’00001111′       ;

              addlw       . 48               ;

              call        viv_symb          ;вызов подпрограммы вывода символа на дисплей

      

              swapf       bcd2,W            ;извлечения разряда тысяч  

              andlw       b’00001111′       ;

              addlw       .48               ;

              call        viv_symb          ;вызов подпрограммы вывода символа на дисплей

 

              movf        bcd2,W            ;извлечения разряда сотен  

              andlw       b’00001111′       ;

              addlw       .48               ;

              call        viv_symb          ;вызов подпрограммы вывода символа на дисплей

              

              swapf       bcd3,W            ;извлечения разряда десятков  

              andlw       b’00001111′       ;

              addlw       .48               ;

              call        viv_symb          ;вызов подпрограммы вывода символа на дисплей

 

              movf        bcd3,W            ;извлечения разряда единиц  

              andlw       b’00001111′       ;

              addlw       . 48               ;

              call        viv_symb          ;вызов подпрограммы вывода символа на дисплей

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма инициализации акселерометра

 

aks_init      movlw       .49

              movwf       adr_byte          ;адрес регистра DATA_FORMAT

              movlw       .1

              movwf       kol_byte          ;передача одного байта

              movlw       b’01000000′       ;самотестирование self-test отключено, 3-х проводной режим SPI,

              movwf       data_x0           ;активный уровень выхода прерываний – высокий, разрешение 10 бит,

                                            ;правое выравнивание результата, предел измерения 2g

              call        send_spi          ;вызов подпрограммы записи по spi

 

              movlw       . 44

              movwf       adr_byte          ;адрес регистра BW_RATE

              movlw       .1

              movwf       kol_byte          ;передача одного байта

              movlw       b’00000111′       ;нормальный режим работы (пониженное потребление выключено),

              movwf       data_x0           ;частота дискретизации 12,5 Гц (частота обновления результата измерения)

              call        send_spi          ;вызов подпрограммы записи по spi

 

              movlw       .46

              movwf       adr_byte          ;адрес регистра INT_ENABLE (настройка прерываний)

              movlw       .1

              movwf       kol_byte          ;передача одного байта

              movlw       b’10000000′       ;разрешить прерывание по готовности результата измерения DATA_READY,

              movwf       data_x0           ;остальные прерывания запрещены

              call        send_spi          ;вызов подпрограммы записи по spi

 

              movlw       . 30

              movwf       adr_byte          ;адрес регистра OFSX (смещение по оси X)

              movlw       .3

              movwf       kol_byte          ;передача трех байт

              movlw       .26               ;

              movwf       data_x0           ;смещение для оси X (регистр OFSX)

              movlw       .12               ;

              movwf       data_x1           ;смещение для оси Y (регистр OFSY)

              movlw       .150               ;

              movwf       data_y0           ;смещение для оси Z (регистр OFSZ)

              call        send_spi          ;вызов подпрограммы записи по spi

 

              movlw       .45

              movwf       adr_byte          ;адрес регистра POWER_CTL

              movlw       .1

              movwf       kol_byte          ;передача одного байта

              movlw       b’00001000′       ;связь событий активности и бездействия выключена, режим автоматического

              movwf       data_x0           ;перехода в сон отключен, активировать режим измерения, спящий режим выключен,

                                            ;частота дискретизации для спящего режима 8 Гц

              call        send_spi          ;вызов подпрограммы записи по spi

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма приема данных по SPI

 

priem_spi     bsf        adr_byte,7         ;установка бита RW для операции чтения по spi

              movf       kol_byte,W         ;проверка кол-ва байт для приема

              sublw      . 1

              btfss      STATUS,C

              goto       pri_2

              btfss      STATUS,Z

              return                        ;кол-во байт для приема равно 0:выход из подпрограммы

              bcf        adr_byte,6         ;сбрасываем бит MB, читаем только один байт данных

              goto       pri_3

pri_2         bsf        adr_byte,6         ;устанавливаем бит MB, читаем несколько байт данных

 

pri_3         bsf        STATUS,RP0         ;перенастройка линии sda_aks на выход

              bcf        TRISB,2

              bcf        STATUS,RP0

 

              bcf        cs_aks             ;сбрасываем линию выбора CS, начало передачи данных

              movf       adr_byte,W

              call       send_sp            ;передача адреса регистра акселерометра

 

              bsf        STATUS,RP0         ;перенастройка линии sda_aks на вход

              bsf        TRISB,2

              bcf        STATUS,RP0

 

              movlw      data_x0            ;установка начального регистра для приема данных

              movwf      FSR

              decf       FSR,F

      

pri_1         incf       FSR,F

              call       priem_sp           ;вызов подпрограммы приема данных

              movwf      INDF                

              decfsz     kol_byte,F

              goto       pri_1

              bsf        cs_aks             ;поднимаем линию выбора CS

              return

 

priem_sp      movlw      . 8                 ;подпрограмма приема байта по spi

              movwf      scetbit

povtor1       bcf        scl_aks

              rlf        perem,F

              bsf        scl_aks

              btfsc      sda_aks

              bsf        perem,0

              btfss      sda_aks

              bcf        perem,0          

              decfsz     scetbit,F

              goto       povtor1

              movf       perem,W

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;            

;Подпрограмма передачи данных по SPI

 

send_spi      bcf        adr_byte,7         ;сброс бита RW для операции записи по spi

              movf       kol_byte,W         ;проверка кол-ва байт для передачи

              sublw      .1

              btfss      STATUS,C

              goto       sen_2

              btfss      STATUS,Z

              return                        ;кол-во байт для передачи равно 0:выход из подпрограммы

              bcf        adr_byte,6         ;сбрасываем бит MB, передаем только один байт данных

              goto       sen_3

sen_2         bsf        adr_byte,6         ;устанавливаем бит MB, передаем несколько байт данных

 

sen_3         bsf        STATUS,RP0         ;перенастройка линии sda_aks на выход

              bcf        TRISB,2

              bcf        STATUS,RP0

 

              bcf        cs_aks             ;сбрасываем линию выбора CS, начало передачи данных

              movf       adr_byte,W

              call       send_sp            ;передача адреса регистра акселерометра

              movlw      data_x0            ;установка начального регистра для передачи данных

              movwf      FSR

              decf       FSR,F

                  

sen_1         incf       FSR,F

              movf       INDF,W

              call       send_sp            ;передача данных на акселерометр

              decfsz     kol_byte,F

              goto       sen_1

              bsf        cs_aks             ;поднимаем линию выбора CS

              return

            

send_sp       movwf      perem              ;подпрограмма отправки байта по spi

              movlw      . 8

              movwf      scetbit

povtor        bcf        scl_aks

              btfsc      perem,7

              bsf        sda_aks

              btfss      perem,7

              bcf        sda_aks

              bsf        scl_aks

              rlf        perem,F

              decfsz     scetbit,F

              goto       povtor

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

bin2bcd       movlw       .16               ;Подпрограмма преобразования двоичного числа

              movwf       shet              ;в десятичное

              clrf        bcd1              ;Двухбайтное число предварительно загружается

              clrf        bcd2              ;в регисты rezLH, rezLL

              clrf        bcd3              ;Результат преобразования:

              goto        bin2bcd_1         ;единицы в младшем полубайте bcd3

                                            ;десятки в старшем полубайте bcd3

adjdec        movlw       0x33              ;сотни в младшем полубайте bcd2

              addwf       bcd1,F            ;тысячи в старшем полубайте bcd2

              addwf       bcd2,F            ;десятки тысяч в младшем полубайте bcd1

              addwf       bcd3,F            ;

                                            ;                                    

              . ……………..

              ………………

              ………………

 

              End

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ADXL345 Спецификация и информация о продукте



  • Особенности и преимущества
  • Информация о продукте

Особенности и преимущества

  • Сверхнизкое энергопотребление: всего 23 мкА в режиме измерения и 0,1 мкА в режиме ожидания при напряжении V S = 2,5 В (типовое)
  • Потребляемая мощность автоматически масштабируется с полосой пропускания
  • Разрешение, выбираемое пользователем
    • Фиксированное 10-битное разрешение
    • Полное разрешение, при котором разрешение увеличивается с диапазоном g , до разрешения 13 бит при ±16 g (с сохранением масштабного коэффициента 4 мг/младший бит во всех диапазонах g )
  • Встроенная система управления памятью с технологией FIFO минимизирует нагрузку на хост-процессор
  • Обнаружение одиночного/двойного касания
  • Мониторинг активности/бездействия
  • Обнаружение свободного падения
  • Диапазон напряжения питания: от 2,0 В до 3,6 В
  • Диапазон напряжения ввода/вывода: от 1,7 В до В S
  • SPI (3- и 4-проводные) и цифровые интерфейсы I 2 C
  • Гибкие режимы прерывания, отображаемые на любой вывод прерывания
  • Диапазоны измерения, выбираемые с помощью последовательной команды
  • Полоса пропускания выбирается с помощью последовательной команды
  • Широкий диапазон температур (от −40°C до +85°C)
  • 10 000 г устойчивость к шоку
  • Не содержит свинца/соответствует RoHS
  • Маленький и тонкий: 3 мм × 5 мм × 1 мм, корпус LGA

ADXL345-EP поддерживает оборонные и аэрокосмические приложения (стандарт AQEC)

  • Загрузить спецификацию ADXL345-EP (pdf)
  • Расширенный диапазон промышленных температур: (от −55°C до +105°C)
  • Базовый уровень контролируемого производства
  • Одна сборочная/испытательная площадка
  • Одна производственная площадка
  • Расширенное уведомление об изменении продукта
  • Квалификационные данные доступны по запросу
  • V62/12657 Номер чертежа DSCC

Подробная информация о продукте

ADXL345 — это небольшой, тонкий, маломощный 3-осевой акселерометр с высоким разрешением (13 бит) при измерениях до ±16 g . Цифровые выходные данные имеют формат 16-битного дополнения до двух и доступны либо через SPI (3- или 4-проводной), либо через I 2 .C цифровой интерфейс.

ADXL345 хорошо подходит для приложений мобильных устройств. Он измеряет статическое ускорение силы тяжести в приложениях с датчиками наклона, а также динамическое ускорение, возникающее в результате движения или удара. Его высокое разрешение (4 м г /LSB) позволяет измерять изменения наклона менее чем на 1,0°.

Предусмотрено несколько специальных сенсорных функций. Активность и бездействие датчики обнаруживают наличие или отсутствие движения, сравнивая ускорение по любой оси с установленными пользователем порогами. Сенсорное прикосновение обнаруживает одиночные и двойные нажатия в любом направлении. Датчик свободного падения определяет, падает ли устройство. Эти функции могут быть отображены индивидуально к любому из двух выходных контактов прерывания. интегрированный система управления памятью с 32-уровневой системой «первым поступил – первым обслужен» (FIFO) буфер может использоваться для хранения данных, чтобы свести к минимуму активность хост-процессора и снизить общее энергопотребление системы.

Режимы с низким энергопотреблением обеспечивают интеллектуальное управление питанием на основе движения с пороговым определением и активным измерением ускорения при чрезвычайно низком энергопотреблении.

ADXL345 поставляется в маленьком, тонком, 3 мм × 5 мм × 1 мм, 14-выводном пластиковом корпусе.

  • ADXL345-EP Поддержка оборонных и аэрокосмических приложений (AQEC)

ПРИЛОЖЕНИЯ

  • Телефоны
  • Медицинские инструменты
  • Игровые и указывающие устройства
  • Промышленные приборы
  • Персональные навигационные устройства
  • Защита жесткого диска (HDD)

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

{{#каждый список}}

{{/каждый}}

Разделительная плата ADXL345

Оценочная плата ADXL345-ISEB

Регистратор данных ADXL345 / Плата разработки

Система оценки в реальном времени для цифрового выходного датчика

Сторонние решения
  • МИКРОЭ-1194, Click Board, Accel Click

    15. 07.2019
Технические паспорта
  • ADXL345: 3-осевой цифровой акселерометр ±2 г/±4 г/±8 г/±16 г. Лист технических данных (версия G)

    26.10.2015
  • ADXL345-EP: расширенный лист технических данных (версия B)

    26. 10.2015
  • ADXL345-DSCC: Военный паспорт

    26.10.2015
Указания по применению
  • AN-1588: Измерение ускорения при малых ускорениях с помощью цифрового акселерометра ADXL345, подключенного к прецизионному аналоговому микроконтроллеру ADuC7024 (Rev. A)

    25.10.2018
  • AN-1057: Использование акселерометра для определения наклона

    14.02.2015
  • AN-1077: Краткое руководство по ADXL345 (версия A)

    18. 06.2010
  • AN-1063: Метод передискретизации для улучшения выходного разрешения ADXL345 (Rev. 0)

    10.05.2010
  • AN-1025: Использование буфера FIFO в цифровых акселерометрах Analog Devices, Inc. (Rev. 0)

    28.06.2009
Руководства пользователя Информация о продукте
  • Передовой инженерный опыт при использовании акселерометров ADXL

    31.03.2021
Часто задаваемые вопросы
  • Часто задаваемые вопросы

    26. 07.2017
Примечание по цепи
  • CN-0133: Измерение ускорения при малых ускорениях с помощью цифрового акселерометра ADXL345, подключенного к прецизионному аналоговому микроконтроллеру ADuC7024

    15.11.2010
Видео
  • Акселерометры MEMS для интеллектуальной инфраструктуры

    09. 07.2021
  • Макетная плата ADXL345

    28.11.2018
  • Панорамная шаровая камера

    использует акселерометр ADXL345

    . 28.11.2018
Технические статьи
  • Включение надежного мониторинга состояния проводных сетей для Индустрии 4. 0 — часть 2

    01.11.2019
  • Выберите правильный акселерометр для профилактического обслуживания

    01.06.2019
  • Выбор наиболее подходящего МЭМС-акселерометра для вашего приложения — часть 1

    01. 10.2017 Аналоговый диалог
  • Пять чувств движения: использование инерциальных датчиков MEMS для преобразования приложений

    01.03.2017
  • Полнофункциональный шагомер, реализованный с помощью 3-осевого цифрового акселерометра

    01. 06.2010 Аналоговый диалог
  • Бесплатное программное обеспечение с открытым исходным кодом — точка зрения Analog Devices

    01.03.2010 Аналоговый диалог
  • Обнаружение падения человека с помощью 3-осевого цифрового акселерометра

    01. 07.2009 Аналоговый диалог
Редко задаваемые вопросы
  • Измерение наклона акселерометра при перегреве и наличии вибрации

    01.08.2017

Модели IBIS

ADXL345 – Модель IBIS

CN0133

Измерение ускорения при малых ускорениях с помощью цифрового акселерометра ADXL345, подключенного к прецизионному аналоговому микроконтроллеру ADuC7024

Комплект Terasic DE10-Nano

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

Выберите модель

Запросить уведомление об изменении продукта/процесса

Закрыть

  • Сохранить в myAnalog Войти в myAnalog
{{#ifCond_pcn. length 0}} {{еще}} {{#каждый ПК}} {{/каждый}}

{{labels.pcn}}

{{labels.title}}

{{labels.publicationDate}}

{{число}} {{#ifCond применимо false}}
PDN больше не применим для этой части. Он был удален в этой версии PDN. {{/ifCond}}
    {{#каждая ссылка}}
  • {{название}}
  • {{/каждый}}
{{название}} {{Дата публикации}}
{{/ifCond}} {{#ifCond pdn. length 0}} {{еще}} {{#каждое персональное имя}} {{/каждый}}

{{labels.pdn}}

{{labels.title}}

{{labels.publicationDate}}

{{число}} {{#ifCond применимо false}}
PDN больше не применим для этой части. Он был удален в этой версии PDN. {{/ifCond}}
    {{#каждая ссылка}}
  • {{название}}
  • {{/каждый}}
{{название}} {{Дата публикации}}
{{/ifCond}}

Часто задаваемые вопросы по оформлению заказа

Ответы на вопросы об онлайн-заказах, способах оплаты и многом другом см. в разделе Часто задаваемые вопросы по оформлению заказов.

 

Цена “Купить сейчас”

(**) Отображаемая цена “Купить сейчас” и диапазон цен основаны на заказах небольшого количества.

 

Прейскурантная цена

(*) Указанная прейскурантная цена 1Ku предназначена ТОЛЬКО ДЛЯ БЮДЖЕТНОГО ИСПОЛЬЗОВАНИЯ, указана в долларах США (FOB США за единицу для указанного объема) и может быть изменена. Международные цены могут отличаться из-за местных пошлин, налогов, сборов и обменных курсов. Для получения информации о ценах или условиях доставки обращайтесь к местному авторизованному дистрибьютору Analog Devices, Inc. Цены, отображаемые для оценочных плат и комплектов, основаны на цене за 1 штуку.

 

Сроки выполнения заказов

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

 

Выборка

При нажатии кнопки «Образец» выше выполняется перенаправление на сторонний образец сайта ADI. Выбранная часть будет перенесена в вашу корзину на этом сайте после входа в систему. Пожалуйста, создайте новую учетную запись там, если вы никогда раньше не использовали сайт. Обращайтесь по адресу [email protected] по любым вопросам, касающимся этого Образца сайта.

Справка по таблице цен

Цена указана за 1 шт.

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

Цена указана за 1 шт. Указанная прейскурантная цена для США предназначена только для бюджетного использования, указана в долларах США (FOB США за единицу) и может быть изменена. Международные цены могут варьироваться в зависимости от местных пошлин, налогов, сборов и обменных курсов.

OSEPP — Модуль датчика акселерометра

СНЯТО С ПРОИЗВОДСТВА Заменен на  ADXL345 Модуль акселерометра

Модуль датчика акселерометра представляет собой 3-осевой датчик ускорения. В нем используется аналоговое устройство ADXL345, обеспечивающее измерение с высоким разрешением до +/- 16 g. Акселерометр измеряет статическое ускорение свободного падения в приложениях с датчиками наклона, а также разрешение динамического ускорения от движения или удара. Его высокое разрешение позволяет измерять изменения наклона менее чем на 1,0˚.

Модуль использует интерфейс I²C для передачи данных. Линии I²C упакованы вместе с линиями питания и заземления в модульный разъем, что позволяет легко подключать и работать. На модуле есть два разъема для последовательного соединения нескольких устройств I²C.

Модуль датчика акселерометра OSEPP в сочетании с модулем датчика гироскопа OSEPP может предоставить полный 6-осевой датчик для полного обнаружения движения.

 

Характеристики

  • Подключи и работай с OSEPP I²C Expansion Shield
  • Измерение ускорения по осям X, Y, Z с диапазоном полной шкалы +/- 2, 4, 8 или 16 g
  • Разрешение до 13 бит, поддерживающее 4 мг/младший бит во всех диапазонах g
  • Поддерживает интерфейс I²C с 2 программируемыми 7-битными адресами 0x1D или 0x53
  • Обеспечивает сквозной разъем для поддержки последовательного подключения нескольких датчиков из семейства модулей датчиков OSEPP
  • Обеспечивает 0,1-дюймовые разъемы для питания и доступа к контактам интерфейса I²C

 

Технические характеристики

Адреса I²C (7-разрядные) 0x1D, 0x53
Форм-фактор 23 мм x 36 мм
Потребляемая мощность 0,7 мВт
Определение контактов разъема Контакт 1: Питание
Контакт 2: Данные I²C
Контакт 3: Земля
Контакт 4: Часы I²C

    Загрузки
    Схема модуля датчика акселерометра OSEPP™ (PDF)
    Технический паспорт трехосевого акселерометра ADXL345 Analog Devices (PDF)
    Вы можете скачать библиотеку с Github здесь.

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

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