Измеритель ускорения ма микроконтроллере ATmega32Новомодная тенденция использования акселерометров в мобильных гаджетах, будь то iPhone или Nintendo Wii, даёт толчок применения их в радиолюбительских конструкциях. Данное устройство, собранное на микроконтроллере ATmega32 позволяет измерять статическое и динамическое ускорение с точностью до нескольких mg и отображает величину ускорения на ЖК дисплее. Используется двухосевой интегральный акселерометр ADXL202. Диапазон работы акселерометра от -2 до +2 g.

 

«Зачем использовать относительно мощный и большой микроконтроллер ATmega32, когда есть более простые и дешёвые микроконтроллеры, например ATtiny2313 или ATmega8, которые лихо справятся с данной задачей? ». – Дело в том, что при разработке и отладки устройства в наличии была отладочная плата с микроконтроллером ATmega32. Может быть, позже, немного изменю прошивку под более дешевый микроконтроллер т.к. у AVR чипов есть совместимость снизу-вверх, то по сути дела изменения сведуться к небольшой правке кода и замене строки в makefile: например, с MCU = atmega32 на MCU = atmega8 и изменению имён пары регистров.акселерометр ADXL202, запаян на плату

Считывание показаний с датчика производится посредством ШИМ-модуляции. Поподробнее о датчике ADXL202, данные взяты из даташита. Скачать datasheet ADXL202. На каждую ось имеется два выхода – один аналоговый, а другой цифровой. Цифровой сигнал передаётся в виде ШИМ.

Внутренняя схема датчика:

Внутренняя схема датчика ускорения ADXL202

 

Частота ШИМ задается номиналом резистора Rset. Данные приведены в таблице:

Период ШИМ

Rset

1 ms

125 kΩ

2 ms

250 kΩ

5 ms

625 kΩ

10 ms

1.25 MΩ

 

 

 

 

 

Период ШИМ приближенно определяется формулой:

T2(s) = Rset /125 MΩ

Ускорение вычисляется по формуле:

Acceleration(g) = (T1/T2 – 0.5)/12.5%

где T1 – время лог.“1”, а T2 – период ШИМ

При нулевом ускорение заполнение ШИМ кадра составляет 50%.

 

Номинал конденсаторов Cx и CY определяет полосу пропускания датчика по осям (т.е. можно отфильтровать нежелательные высокочастотные ускорения такие как вибрация и т.п.):

 

Полоса пропускания

Номинал Cx, Cy

10 Hz

0.47 µF

50 Hz

0.10 µF

100 Hz

0.05 µF

200 Hz

0.027 µF

500 Hz

0.01 µF

5 kHz

0.001 µF

 

 

 

 

 

 

 

 

 

Вывод результатов измерения производится на дисплей 16*2 с любым HD44780-совместимым контроллером. Управление устройством осуществляется посредством двух кнопок, одна из которых служит для перемещения по меню, а другая для подтверждения выбора пользователя. Микроконтроллер работает на частоте 1MHz, тактирование может происходить от внешнего кварца либо от внутренней RC- цепочки, что менее предпочтительно. В принципе на частоту тактирования не накладываются жесткие ограничения, при другой частоте кварца потребуется небольшое редактирование исходного кода. Кнопка служит для выбора единицы измерения ускорения, либо g, либо м/c2. Схема измерителя ускорения на микроконтроллере AVR ATmega32:

принципиальная схема измерителя ускорения на микроконтроллере AVR ATmega32, датчик ADXL202
Выход датчика Xout или Yout подключается ко входу (20 нога микроконтроллера - Input Capture Pin). Плюс питания подключается к 10, а земля к 11 ноге микроконтроллера. Желательно поставить керамический конденсатор 0,1μF между плюсом питания и землёй для фильтрации помех и наводок на линии питания. Подтягивающий резистр к питанию для 16 ноги не нужен, так как задействован внутренний. Контраст дисплея настраивается напряжением на ноге Vee дисплея (ниже, на фотографии, синий прямоугольник - переменный резистор).
Измеритель ускорения, собранный на макетной плате (датчик ADXL202 с обвесом на правой части платы):
Измеритель ускорения на микроконтроллер ATmega32, собранный на макетной плате
Отображения текущего и максимального ускорения на дисплее:
Отображение ускорения, 1я строка - текущее, 2я - максимальное ускорение

Возможные улучшения:

  • ввести калибровку датчика,
  • измерение ускорения по двум осям,
  • вложенное меню настроек
Скачать архив проекта - исходник и прошивка

 

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


Защитный код
Обновить