В процессе контролирования аналоговых данных, таких как температура, влажность, освещённость, напряжение, ток в трёхфазной сети и т.п., в некоторых случаях требуется знать динамику их изменений за какой-то промежуток времени. Обычные измерительные приборы не дают возможность оперировать результатами этих измерений для дальнейшей обработки и анализа. Для решения этой задачи может быть использована система регистрации данных, которая позволяет проводить сбор и накопление аналоговых данных в запоминающем устройстве. Принимая во внимание высокую стоимость промышленных зарубежных образцов и недостаточную гибкость в настройке и работе схемных решений из сети интернет, было решено разработать многофункциональный регистратор аналоговых данных с возможностью изменения в широком диапазоне интервала измерения аналоговых сигналов.
А теперь более человеческим языком.
Для своих нужд long long time ago я разработал систему регистрации аналоговых сигналов, которая позволяет получить интервал измерения (и накопления) данных от 1 секунды до 1 часа (с дискретностью в 1 секунду), используя для этих целей конфигурационный файл на карте памяти, тем самым обеспечивается гибкость настройки и отсутствие дополнительных интерфейсов сопряжения с компьютером.
Основой регистратора данных является микроконтроллер ATmega32. Программа, записанная в микроконтроллер, позволяет работать с картами памяти типа SD и MMC, которые отформатированы в системе FAT16 или FAT32. Файловая система, применённая в проекте – FatFs (за что мой низкий поклон мистеру ChaN(у) который подарил человечеству продукт своих титанических усилий. Хотя в программе CodeVision AVR, в которой я создавал проект, присутствует встроенная библиотека работы с картами памяти и файловой системой, я подключил библиотеку FatFs именно ChaN(а), т.к. хотел разобраться с некоторыми особенностями её работы.
Регистратор позволяет отслеживать 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 01/01/14 10
В приведенной строке устанавливается время 12:00, дата 1 января 2012 года и интервал выборок 10 секунд. Значение интервала выборок может быть четырёхзначным числом от 1 до 3600 (т.е. интервал измерения и записи аналогового сигнала от 1 секунды до 1 часа).
После начальной установки текущего времени и даты в часах реального времени DD2, в файле конфигурации напротив конфигурационной строки установится знак «+», сигнализирующий о том, что время установлено успешно. Это предохраняет от очередной установки времени часов при последующих включениях регистратора.
При минимуме средств индикации (два светодиода) обеспечивается полноценная наглядность работы устройства. Разные варианты работы светодиодов позволяют контролировать режим работы (наличие питания, начало записи) и определять наличие и характер ошибок в работе регистратора (карта памяти переполнена, сбой часов реального времени, сбой в работе карты памяти). Кнопкой SB1 осуществляется пуск и остановка записи данных. Кнопка SB2 сбрасывает порядковый номер создаваемого файла (количество созданных файлов имеет ограничение в 999 файлов, что при необходимости можно изменить, подкорректировав программу).
Регистратор данных позволяет использовать аналоговые датчики, сигнал которых находится в диапазоне 0-5 В, но при необходимости этот диапазон можно увеличить, введя дополнительные резисторы в цепь входа устройства.
Сохраненные на карте памяти данные можно далее просмотреть на компьютере с помощью программы «Блокнот» или же импортировать в другую программу для обработки.
Собственно, девайс (мне было лень делать разводку для SMD-монтажа):
Биты конфигурации для микроконтроллера:
При подаче питания на устройство и при правильной инициализации карты памяти загорается зелёный светодиод. В случае возникновения ошибки в работе регистратора (сбой в работе карты памяти) начинает мигать красный светодиод. Если произошёл сбой микросхемы часов реального времени (часы стоят) будет мигать зелёный светодиод. А если одновременно мигают оба светодиода, то это значит что карта переполнена. При записи данных будет гореть красный светодиод.
На рисунке 3 показан пример файла, открытого на компьютере в программе «Блокнот», в который проходила запись данных с 8-ми каналов АЦП с интервалом в 10 секунд, причём напряжение (в виде подключённой пальчиковой батарейки на 1,5 В) подавалось лишь на первый канал АЦП.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
DD1
МК AVR 8-битATmega321
DD2
Часы реального времени (RTC)DS13071
DA1
Линейный регуляторL7805AB1
DA2
Линейные регуляторLD331
VD1
СветодиодАЛ307В1
ЗелёныйVD2
СветодиодАЛ307Б1
КрасныйZQ1
Кварц16 МГц1
ZQ2
Кварц32768 Гц1
C1, C2
Конденсатор22 пФ2
C3, C4, C6, C7, C9
Конденсатор100 нФ5
C5, C8
Электролитический конденсатор47 мкФ2
R1, R2
Резистор510 Ом2
R3-R10
Резистор15 кОм8
R11-R13
Резистор5.6 кОм3
R14-R16
Резистор10 кОм3
R17, R18
Резистор4.7 кОм2
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- Data_Logger — код.rar (553 Кб)
- Logger.eep (1 Кб)
- Logger.hex (56 Кб)
- Data_Logger — Плата под ЛУТ.rar (90 Кб)