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. С ее помощью можно быстро реализовать цифровые фильтры, в т.
Построение пространственной картины измерений
Идея этого применения заключается в совместной обработке сигнала системы навигации и системы измерения, датчики которых конструктивно объединены, что позволяет построить пространственную картину измеряемой величины.
Пример 1. Металлоискатель, или функционально аналогичный прибор, в котором имеется датчик интенсивности некой физической величины. При перемещении измерительной части, на индикаторе прибора отображается не только текущее значение измеряемой величины, но и положение датчика относительно зарегистрированных минимумов и максимумов сигнала, или его градиентов. Это избавляет оператора от необходимости сравнивать текущие показания интенсивности с максимальными их значениями, анализируя направление перемещения измерительной части в поиске точек минимума и максимума.
Пример 2. Аудиометрия помещений может быть проведена гораздо быстрее, если измерительный микрофон совместить с датчиком перемещения. При этом измерения можно проводить не в точках, а по траекториям, автоматически фиксируя результаты соответствующим программным обеспечением.
Интерфейсы пользователя
Удобство применения бытовой техники имеет решающее значение в условиях конкуренции. Какой бы совершенной ни была та или иная технология, она едва ли станет успешной, если разработчикам не удалось сделать ее использование максимально интуитивным и привлекательным. Помочь завоевать будущего пользователя может применение акселерометров. Уже сейчас на рынке появилось немало устройств с недорогими акселерометрами, как специально ориентированными на использование этой технологии, так и содержащими этот компонент как опцию, благо софт в большинстве устройств можно обновить. Частными случаями такого применения является: изменение ориентации изображения на экране мобильного устройства или ноутбука; учет ориентации изображения в фотоаппарате или фоторамке; управление прокруткой изображения при встряхивании или наклоне мобильного телефона [14, 15].
Детектирование свободного падения портативной аппаратуры
Использование акселерометров для защиты носителей данных получило распространение в жестких дисках портативных компьютеров. Алгоритм, реализующий обнаружение свободного падения, подробно рассмотрен в [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.2015ADXL345-EP: расширенный лист технических данных (версия B)
26. 10.2015ADXL345-DSCC: Военный паспорт
26.10.2015
AN-1588: Измерение ускорения при малых ускорениях с помощью цифрового акселерометра ADXL345, подключенного к прецизионному аналоговому микроконтроллеру ADuC7024 (Rev. A)
25.10.2018AN-1057: Использование акселерометра для определения наклона
14.02.2015AN-1077: Краткое руководство по ADXL345 (версия A)
18. 06.2010AN-1063: Метод передискретизации для улучшения выходного разрешения ADXL345 (Rev. 0)
10.05.2010AN-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
{{labels.pcn}} | {{labels.title}} | {{labels.publicationDate}} |
{{число}}
{{#ifCond применимо false}} PDN больше не применим для этой части. Он был удален в этой версии PDN. {{/ifCond}}
| {{название}} | {{Дата публикации}} |
{{labels.pdn}} | {{labels.title}} | {{labels.publicationDate}} |
{{число}}
{{#ifCond применимо false}} PDN больше не применим для этой части. Он был удален в этой версии PDN. {{/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 здесь. |