|
MicroSD ATmega32 Data-Logger
Статьи публикуются по мере поступления. Для упорядоченного тематического
поиска воспользуйтесь блоком "Карта сайта"
Цель исследования - представить способ хранения большого количества данных на карте microSD в файлах с форматом FAT32. Здесь ATmega32 используется для сбора данных и интерфейса microSD. Данные поступают от встроенного 8-канального АЦП ATmega32. Один канал используется для считывания температуры с датчика LM35, а остальные каналы используются для простого считывания напряжений и их сохранения. Может использоваться для взаимодействия 8 различных датчиков с АЦП ATmega32, аналогично используемому здесь LM35. Данные хранятся в формате CSV (значения, разделенные запятыми), которые можно прочитать с помощью ПК / ноутбука с Microsoft Excel или другого совместимого программного обеспечения. Снимок файла
Вот схема
Проект содержит интерфейс RTC (для хранения даты и времени), RS232 (для подключения к ПК) и модуль microSD. Здесь гипертерминальное соединение требуется только для установки даты и времени RTC. После установки даты / времени соединение RS232 больше не требуется для обычной операции регистрации данных (его можно использовать для отладки, если есть проблема).
Используемый здесь модуль microSD - от eXtreme Electronics .
Модуль показан на рисунке. Помимо разъема microSD, этот недорогой модуль также содержит встроенный 3,3-вольтовый регулятор для карты microSD, конвертер уровня 5v-3,3v и другие функции безопасности, необходимые для карты. Этот модуль используется здесь, поскольку он обеспечивает стабильный интерфейс и делает карту совместимой с 5-вольтным питанием и 5-в-сигналами микроконтроллера. На схеме также показаны два светодиода и кнопка. Светодиоды используются для индикации мощности и записи, а кнопка используется для начала-остановки записи.
Работа схемы:
-----------------------------------------------
Для установки даты / времени RTC (или режима отладки):
Подключите модуль microSD, вставьте карту microSD
Подключите кабель RS232 к цепи. Гипер-терминал настройки с 19200 бод, без контроля четности, 8-битных данных, 1 стоп-бит и управления потоком как «Нет»
Подключите кабель питания и включите питание, удерживая нажатой кнопку
Зеленый светодиод будет светиться на печатной плате
На терминале Hyper будет отображаться меню, как показано на рисунке ниже. Выберите желаемый вариант и следуйте отображаемым инструкциям.
Когда дата / время установлены или отладка завершена, выберите опцию «0», чтобы выйти из меню и начать работать как регистратор данных
В этот момент кабель RS232 можно удалить
Операция как Data-Logger:
Подключите кабель питания и включите питание схемы
Загорится зеленый светодиод
Всякий раз, когда требуется регистрация данных, нажмите кнопку
Красный светодиод загорится, указывая, что запись началась
Чтобы остановить запись, нажмите кнопку еще раз, запись остановится и красный светодиод погаснет
Файлы, хранящиеся на карте, могут быть прочитаны с помощью устройства чтения карт ПК или с использованием гипертерминала, когда схема запущена в режиме отладки. Операция очень проста, так как она использует только одну кнопку и светодиодную индикацию. В случае ошибки при доступе к карте красный светодиод будет постоянно мигать. В этом случае вы можете запустить схему в режиме отладки (с терминалом) и просмотреть сообщения об ошибках. Файлы хранятся с датой в виде имени и расширения .CSV. Например, запись данных, сделанная 10 мая 2011 года, будет храниться в файле «10052011.CSV». Поскольку дата - это имя файла, каждый день создается один файл, и вся запись данных за один день переходит в один файл независимо от того, сколько раз запись остановлена / запущена. Первый столбец файла показывает дату, второе показывает время и следующие 8 столбцов показывают данные из 8 каналов. Файл, созданный во время тестирования, показан на рисунке ниже, где для измерений был установлен интервал в 5 секунд (щелкните по изображению, чтобы увеличить его). Здесь канал-0 использовался для датчика температуры LM35, а остальные каналы измеряли напряжение. 5v был подключен к каналу-1, а 3-вольтовый элемент Li был подключен к каналу-3 (каналы 2 и 4 показывают некоторые небольшие напряжения из-за шума от напряжений, подключенных к соседним каналам, которые могут быть исправлены с использованием обходных колпачков).
Интервал между двумя измерительными циклами определяется в файле main.c, который может быть установлен в соответствии с требованиями пользователя. В принципе, программа формирует dataString в каждом цикле измерений и добавляет эту строку в файл, если файл уже существует или создает новый файл (например, во время первой записи в день). Вы можете просмотреть комментарии в файле исходного кода для получения дополнительной информации.
Примечание: Убедитесь, что цепь RTC правильно подключена, иначе код просто зависает в ожидании получения даты и времени от RTC
--------------------------------------
Исходный код записывается в формате AVR-GCC с помощью winAVR с AVRStudio-4, полная папка проекта AVRStudio может быть загружена отсюда:
- Загрузить исходный код