В процессе контролирования аналоговых данных, таких как температура, влажность, освещённость, напряжение, ток в трёхфазной сети и т.п., в некоторых случаях требуется знать динамику их изменений за какой-то промежуток времени. Обычные измерительные приборы не дают возможность оперировать результатами этих измерений для дальнейшей обработки и анализа. Для решения этой задачи может быть использована система регистрации данных, которая позволяет проводить сбор и накопление аналоговых данных в запоминающем устройстве. Принимая во внимание высокую стоимость промышленных зарубежных образцов и недостаточную гибкость в настройке и работе схемных решений из сети интернет, было решено разработать многофункциональный регистратор аналоговых данных с возможностью изменения в широком диапазоне интервала измерения аналоговых сигналов.
А теперь более человеческим языком.
Для своих нужд 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-бит | ATmega32 | 1 | Поиск в магазине Отрон | ||
DD2 | Часы реального времени (RTC) | DS1307 | 1 | Поиск в магазине Отрон | ||
DA1 | Линейный регулятор | L7805AB | 1 | Поиск в магазине Отрон | ||
DA2 | Линейные регулятор | LD33 | 1 | Поиск в магазине Отрон | ||
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 Кб)
Комментарии (22) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
У нее 24 битный АЦП.
Автор сам разработал схему и программу? Уж как то очень смахивает структура проекта на http://www.dharmanitech.com/2011/05/microsd-atmega32-datalogger.html
Суть такова, что хочу прицепить его на стабилизатор напряжения, чтобы выяснить качество его работы, а для этого нужно параллельно контроллировать 2 канала входного и выходного напряжения. Так же не помешала бы возможность изменять колличство контроллируемых каналов, чтобы не писать даные с пустышек.
Микросхема ATmega32A-AU подойдет?
В программе PONI PROG в таблице фьюзов отсутствует окно "SPIEN". Т.е закрашен серым и нет возможности вставить галочку. Это нормально?
Спасибо.
В пони отсутствует "ШПИЁН" - это нормально. Если микросхема видится, его и так нельзя трогать.
От себя добавлю всем - галочку "JTAGEN" дружно снимаем. BODEN можно поставить по вкусу.
Возможно есть готовые устройства или полуфабрикаты?
Its a great project you shared with us. I collect the same and working great. I need to know when lamp on/off time and its to be recorded. This device will work with some changes in the input of datalogger input. I just design a circuit with 12F675 for switching 0 to 5 volt. Now able to find the right time to know when the lamp is on and off. One thing more, DS3231 will work insted of DS1307... Thank you so much for this great device.. Thank you.