Акселерометр ADXL345 представляет собой 3-осевой датчик ускорения с возможностью связи как по интерфейсу SPI, так и по I2C. Он прост в эксплуатации, и поэтому хорошо подходит для несложных приложений инерциальной навигации.
Представленный код позволяет наладить взаимодействие между ADXL345 и микроконтроллером (в данном случае код для PIC16 и компилятора CCS PICC, но при желании можно переделать под любой МК) по шине I2C. С помощью него можно инициализировать, настраивать акселерометр, записывая в него данные по определенному адресу, и считывать данные с самого акселерометра.
Описание микросхемы
ADXL345 хорошо подходит для применения в мобильных устройствах. Компонент способен измерять статическое ускорение, вызванное гравитацией, в задачах определения отклонения, а также динамическое ускорение, вызванное движением или ударами. Высокое разрешение ADXL345 (4·10-3 g/LSB) позволяет измерять изменения отклонения менее чем на 1.0°.
Компонент имеет несколько специализированных функциональных блоков. Блок детектирования активности и неактивности позволяет обнаруживать наличие или отсутствие движения, а также превышение ускорением по любой из осей устанавливаемого пользователем уровня. Детектор касаний обнаруживает однократные и двойные касания в любом из направлений. Детектор свободного падения определяет, находится ли устройство в состоянии падения. Выходные сигналы этих функциональных блоков могут выводиться в индивидуальном порядке на любой из двух выходных выводов прерываний. Интегрированный буфер FIFO на 32 элемента (подана заявка на патент) может быть использован для хранения данных в целях минимизации вмешательства со стороны хост-процессора.
Режимы пониженного энергопотребления позволяют реализовать интеллектуальное управление питанием системы с обнаружением превышения порогового значения и проведением измерений ускорения при крайне низкой рассеиваемой мощности.