Data-Logger устройство записи данных на карту памяти SD с микроконтроллером ATmega32

Цель этой статьи — показать метод записи больших массивов данных на microSD карту памяти в файловой системе FAT32. Для оцифровки данных и связи с картой памяти использован микроконтроллер ATmega32. Прием данных осуществляется встроенным в микроконтроллер восьмиканальным аналого-цифровым преобразователем (АЦП). Один из каналов выделен для оцифровки температуры с датчика LM35, а оставшиеся каналы просто считывают поданные на них напряжения и сохраняют их.

Проект можно использовать для сбора показаний с восьми различных датчиков, таких как использованный здесь датчик температуры LM35. Данные сохраняются в файлах формата CSV (Comma Separated Values — данные, разделяемые запятой). такие файлы с легкостью можно прочитать и проанализировать на любым компьютере с помощью Microsoft Excel или другим совместимым софтом.

Принципиальная схема (кликните на изображении чтобы увеличить)

Перевод надписей на схеме
Power SupplyИсточник питания
LED2 (Green) – Power ON IndicatorLED2 (Зеленый) – Индикатор включения питания
LED1 (Red) – Recording ON IndicatorLED1 (Красный) – Индикатор включения записи
S1 – Start/Stop Recording ButtonS1 – Кнопка пуска/останова записи
ADC ConnectorРазъем АЦП
microSD module ConnectorРазъем модуля microSD
RS232 DB9(F) ConnectorРазъем RS-232 гнездо DB9F

Проект содержит часы реального времени (RTC) c резервным источником питания на микросхеме DS1307, что позволяет сохранять время получения информации. Для связи с компьютером используется микросхема MAX232. Настройка системы довольно проста. Она производится через интерфейс RS-232 с компьютера с помощью программы hyper-terminal. После настройки соединение с компьютером уже не нужно (тем не менее его можно использовать для отладки системы).

Для связи карты памяти и микроконтроллера используется соответствующий модуль.

такой модуль содержит встроенный стабилизатор на напряжение 3.3 В для питания SD карты и микросхему преобразователя логических уровней 5в -> 3.3в. Модуль можно заказать в Китае по этой ссылке.

Напряжение питания микроконтроллера и периферии +5В подается со стабилизатора напряжения LM7805. Микросхема часов реального времени подключена к микроконтроллеру по интерфейсу I2C. В качестве резервного источника питания используется литиевая батарейка CR2032.

Термодатчик LM35 подключен к каналк 0 АЦП. Входы оставшихся 7 каналов выведены на контакты и могут использоваться для подключения сигналов с различных датчиков.

В устройстве есть кнопка и два светодиода. Светодиоды показывают наличие питания и режим записи данных, кнопка предназначена для запуска и остановки записи.

Работа с системой

  • Подключите модуль SD карты, установите карту памяти в слот;
  • Подключите кабель RS-232 к системе. В установках программы Hyper Terminal необходимо установить скорость обмена данными 19200 Бод, без проверки четности, 8 бит данных, 1 стоп-бит, аппаратное управление потоком отключено;
  • Подключите питание к системе, удерживая кнопку S1 в нажатом состоянии; зеленый светодиод свидетельствует о наличии питания;
  • в окне терминальной программы Hyper Terminal отобразится меню (см. рисунок). Выберите необходимый пункт меню и следуйте инструкциям;
  • после установки даты/времени или по окончанию отладки выберите пункт меню 0 (Exit the Menu) для выхода из меню и перехода в режим сбора данных;
  • отключите кабель RS-232.

Окно программы HyperTerminal при подключении системы к компьютеру по последовательному порту (RS232)

Порядок работы:

  1. подключите питание устройства
  2. зеленый светодиод показывает наличие напряжения питания;
  3. для начала записи данных нажмите кнопку;
  4. красный светодиод показывает то, что идет процесс записи данных;
  5. для остановки записи нажмите кнопку еще раз, красный светодиод погаснет, сзапись прекратится.
  6. для чтения сохраненных данных можно использовать ПК и кардридер.
  7. данные можно получить по интерфейсу RS-232 в отладочном режиме.

Данные сохраняются с интервалами 5 секунд. Это время можно изменить, подкорректировав исходный код (main.c) и перекомпилировав проект. Прошивка написана в AVR Studio с использованием компилятора языка Си WinAVR (avr-gcc).

Скачать архив с файлами проекта


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

Ваш адрес email не будет опубликован. Обязательные поля помечены *