«Зачем использовать относительно мощный и большой
микроконтроллер ATmega32, когда есть более простые и дешёвые
микроконтроллеры, например ATtiny2313 или ATmega8, которые лихо
справятся с данной задачей? ». – Дело в том, что при разработке и
отладки устройства в наличии была отладочная плата с микроконтроллером
ATmega32. Может быть, позже, немного изменю прошивку под более дешевый
микроконтроллер т.к. у AVR чипов есть совместимость снизу-вверх, то по
сути дела изменения сведуться к небольшой правке кода и замене строки в
makefile: например, с
MCU = atmega32 на
MCU = atmega8 и изменению имён пары регистров.Считывание показаний с датчика производится посредством ШИМ-модуляции. Поподробнее о датчике 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, либо м/c
2.
Схема измерителя ускорения на микроконтроллере AVR ATmega32:
Выход датчика Xout или Yout
подключается ко входу (20 нога микроконтроллера - Input Capture Pin).
Плюс питания подключается к 10, а земля к 11 ноге микроконтроллера.
Желательно поставить керамический конденсатор 0,1μF между плюсом
питания и землёй для фильтрации помех и наводок на линии питания.
Подтягивающий резистр к питанию для 16 ноги не нужен, так как
задействован внутренний. Контраст дисплея настраивается напряжением на
ноге Vee дисплея (ниже, на фотографии, синий прямоугольник - переменный
резистор).
Измеритель ускорения, собранный на макетной плате (датчик ADXL202 с обвесом на правой части платы):
Отображения текущего и максимального ускорения на дисплее:
Возможные улучшения:
ввести калибровку датчика,
измерение ускорения по двум осям,
вложенное меню настроек
Автор: Радиодед
Связь с автором: Нет данных
Веб сайт автора: http://radioded.ru
Прислал: Нет данных
Источник: http://radioded.ru
Доп материалы, файлы к устройству (схеме):
Архив проекта - исходник и прошивка