- Лоботрясы

Поиск
Перейти к контенту

Главное меню:

Статьи по AVR

Читать в Яндекс.Подписках



    Дата-логгер (регистратор аналоговых данных) - Version 1.1
Просмотров: 3288
     Первый вариант моей статьи когда-то был опубликован на другом вражескомэлектронном ресурсе - Дата-логгер v1.0.
     Теоретическая часть данной статьи практически ничем не отличается от оригинала, а вот программный код был немного доработан. В частности, была устранена ошибка инициализации карт памяти, которая иногда происходила с картами SD и MMC, и которая была обнаружена благодаря одному из заинтересовавшихся данной схемой радиолюбителей.

     И сама статья:
     В процессе контролирования аналоговых данных, таких как температура, влажность, освещённость, напряжениеток в трёхфазной сети и прочей чепухи, в некоторых случаях требуется знать динамику их изменений за какой-то промежуток времени. Обычные измерительные приборы не дают возможность оперировать результатами этих измерений для дальнейшей обработки и анализа. Для решения этой задачи может быть использована система регистрации данных, которая позволяет проводить сбор и накопление аналоговых данных в запоминающем устройстве. Принимая во внимание высокую стоимость промышленных зарубежных образцов и недостаточную гибкость в настройке и работе схемных решений из сети интернет, было решено разработать многофункциональный регистратор аналоговых данных с возможностью изменения в широком диапазоне интервала измерения аналоговых сигналов.
     А теперь более человеческим языком.
     Для своих тайных нужд long long time ago я разработал систему регистрации аналоговых сигналов, которая позволяет получить интервал измерения (и накопления) данных от 1 секунды до 1 часа (с дискретностью в 1 секунду), используя для этих целей конфигурационный файл на карте памяти, тем самым обеспечивается гибкость настройки и отсутствие дополнительных интерфейсов сопряжения с компьютером.
     Идею о создании данного девайса мне подкинула попавшаяся статья о создании аналогичного прибора от некого индуса - http://www.dharmanitech.com/, часть программных решений которого были позаимствованы для моего проекта. Однако, режим настройки логгера с помощью COM-порта не вызвал у меня бурного восторга, в результате чего я стал разрабатывать свой вариант прибора, взяв за основу программную реализацию файловой системы под именем FatFs.
     Основой регистратора данных является микроконтроллер ATmega32. Программа, записанная в микроконтроллер, позволяет работать с картами памяти типа SD и MMC, которые отформатированы в системе FAT16 или FAT32. Как я уже упоминал, файловая система, применённая в проекте – FatFs (а за неё усердно воздаём хвалы мистеру ChaN(у) который подарил человечеству продукт своих титанических усилий (для воздания хвалебных од: - http://elm-chan.org/fsw/ff/00index_e.html). 
     Регистратор позволяет отслеживать 8 аналоговых каналов (столько аналоговых входов имеет АЦП микроконтроллера), т.е. пользователи могут подключить к устройству до 8 аналоговых сенсоров.  
     Принципиальная схема регистратора:
     Устройство содержит часы реального времени с резервным источником питания, что позволяет записывать, помимо данных с АЦП, время получения данных. Такая функция полезна при анализе данных и при составлении статистики их изменения.
Для реализации функции записи времени регистрации данных применена микросхема часов реального времени DS1307 (DD2) с интерфейсом I2C.
Данные сохраняются регистратором на карте памяти SD или MMC емкостью до 32 ГБайт в формате TXT, хотя вы можете без проблем изменить расширение на CSV. (CSV – текстовый формат, предназначенный для представления табличных данных. Каждая строка файла – это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом – запятой) Карта памяти должна быть с файловой системой FAT. Файл данных имеет вид "DATA000.txt".
     Т.к. данные с карты памяти в любом случае будут считываться после проведения записи аналоговых сигналов, то при разработке схемы решено было отказаться от какого-либо интерфейса, связывающего регистратор с компьютером, а установка даты, времени и режима работы регистратора происходит изменением значений файла конфигурации на карте памяти.
     Установка времени, даты и интервала измерения выполняется корректировкой файла конфигурации, который создаётся на карте памяти при первом включении устройства. Это простой текстовый файл с именем "auto_exe.txt", который можно создать с помощью любого текстового редактора. При первом включении контроллера с картой памяти, в конфигурационном файле будет содержаться конфигурационная строка вида:
HH:MM DD/MM/YY    NNNN
     Например,
12:00 10/07/14    60
     В приведенной строке устанавливается время 12:00, дата 10 июля 2014 года и интервал выборок 1 минута (60 секунд). Значение интервала выборок может быть четырёхзначным числом от 1 до 3600 (т.е. интервал измерения и записи аналогового сигнала от 1 секунды до 1 часа).
После начальной установки текущего времени и даты в часах реального времени DD2, в файле конфигурации напротив конфигурационной строки установится знак «+», сигнализирующий о том, что время установлено успешно. Это предохраняет от очередной установки времени часов при последующих включениях регистратора.
     При минимуме средств индикации (два светодиода) обеспечивается полноценная наглядность работы устройства. Разные варианты работы светодиодов позволяют контролировать режим работы (наличие питания, начало записи) и определять наличие и характер ошибок в работе регистратора (карта памяти переполнена, сбой часов реального времени, сбой в работе карты памяти). Кнопкой SB1 осуществляется пуск и остановка записи данных.
     Регистратор данных позволяет использовать аналоговые датчики, сигнал которых находится в диапазоне 0-5 В, но при необходимости этот диапазон можно увеличить, введя дополнительные резисторы в цепь входа устройства.
     Сохраненные на карте памяти данные можно затем просмотреть на компьютере с помощью программы «Блокнот» или же импортировать в другую программу для обработки.
 
     Собственно, девайс (мне было лень делать разводку для SMD-монтажа;-):
     На рисунке 3 показан пример файла, открытого на компьютере в программе «Блокнот», в который проходила запись данных с 8-ми каналов АЦП с интервалом в 10 секунд, причём напряжение (в виде подключённой пальчиковой батарейки на 1,5 В) подавалось только на первый канал АЦП.
     Ну и, конечно же, фьюзы:
 
 
Назад к содержимому | Назад к главному меню