Регистратор на базе модуля SD-карты

Состав системы
Как работает
Кнопки управления
Индикация LCD
Подключение
Что нужно для проекта
Скетч

Фото системы
Версия для печати

Вернуться на главную

В данном проекте демонстрируется возможность записи каких-либо параметров на микро-SD карту с помощью специального модуля-адаптера. В качестве данных для регистрации будут использованы время и дата, полученные от часов реального времени DS1302, и температура от самодельного температурного преобразователя.

Модуль-адаптер для микро-SD карты

Модуль-адаптер для микро-SD карты

Сразу скажу про проблему, возникшую в процессе работы. Это первый проект с Arduino UNO, когда мне не хватило памяти этого контроллера. Причина - в большом количестве подключаемых библиотек. Соответственно, пришлось от многого отказаться : убраны калибровка термодатчика, настройка даты и времени часов, возможность записи параметров в энергонезависимую память PLC. Поэтому для серьезного проекта, где кроме простой записи данных требуются элементы управления, вам понадобится что-то помощнее из линейки контроллеров Arduino.

СОСТАВ СИСТЕМЫ

PLC Arduino UNO с шилдом Sensor Shield v 5.0 (питание 7-12 В постоянного тока), LCD-дисплей с шиной I2C, DC-DC конвертер для питания дисплея и термопреобразователя, кнопочный пост с тремя кнопками, модуль микро-SD карты и модуль часов реального времени. Для работы этого модуля нужна батарейка CR2032 на 3 вольта. Измерение температуры производится самодельным температурным преобразователем.

КАК РАБОТАЕТ

При подаче питания на Arduino система переходит в режим ожидания : на экране можно увидеть время, дату и температуру. Как только вы нажмете на кнопку ВВЕРХ, начнется запись данных (время и температура) на карту. Остановить запись можно кнопкой ВНИЗ. В настройках можно задать интервал записи и поправку температуры.

Регистратор на базе модуля SD-карты

Регистратор на базе модуля SD-карты

КНОПКИ УПРАВЛЕНИЯ

Управлять системой можно с помощью трех кнопок : НАСТРОЙКИ, ВВЕРХ и ВНИЗ. Рассмотрим их функции подробно :

Кнопка НАСТРОЙКИ

При нажатии этой кнопки вы попадете в меню настроек и будете циклично переходить по пунктам меню. После последнего пункта меню вы снова вернетесь на основной экран (время, дата и температура). К сожалению, из-за недостатка памяти количество настроек пришлось сократить до двух. К тому же они не сохраняются в памяти контроллера при перезагрузке.

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

Пройдемся по пунктам меню Настройки.

  • Time Record : интервал записи параметров, сек.
  • Temp Correction : поправка термодатчика, ºC.

Кнопки ВВЕРХ-ВНИЗ

В настройках этими кнопками меняются значения параметров.

В основном экране, нажав на кнопку ВВЕРХ, вы начнете запись данных на карту. Кнопкой ВНИЗ запись можно остановить.

ИНДИКАЦИЯ LCD

Верхняя строчка :
"HH:MM:SS TT,TºC" - текущее время и температура
Если введена поправка температуры, появится восклицательный знак
При нажатии кнопки ВВЕРХ - начало записи (START RECORD)
В режиме настроек : пункты меню настроек
Нижняя строчка :
"DD.MM.YY Www" - текущая дата и день недели
Если идет запись, появится буква "R"
При нажатии кнопки ВНИЗ - остановка записи (STOP RECORD)
В режиме настроек : значение пункта меню настроек
Индикация LCD

Индикация LCD

ПОДКЛЮЧЕНИЕ

Здесь приведено соединение всех элементов системы управления : Arduino (через шилд), модуля микро-SD карты, модуля часов и датчика температуры. В виде схемы подключение представлено ниже.

Плата Arduino и Sensor-shield

  • питание Arduino : от адаптера 7-12VDC (2A)
  • питание шилда (перемычка убрана) : от адаптера 7-12VDC (2A) через понижающий DC-DC преобразователь типа LM2596 (не менее 2А)
  • LCD-дисплей 1602 + модуль I2C : питание от шилда (подсоединяем GND и VCC к любым свободным пинам G и V цифровых входов), SDA (I2C) - A4 (шилд), SCL (I2C) - A5 (шилд)
  • сигнал от кнопки НАСТРОЙКИ : вход в Arduino - цифровой пин 7. Пины + и - кнопочного поста, общие для всех кнопок НАСТРОЙКИ, ВВЕРХ, ВНИЗ, подсоединяем к любым свободным пинам V и G цифровых входов. Линию сигнала и земли шунтируем резистором 10кОм
  • сигнал от кнопки ВВЕРХ : вход в Arduino - цифровой пин 6. Линию сигнала и земли шунтируем резистором 10кОм
  • сигнал от кнопки ВНИЗ : вход в Arduino - цифровой пин 5. Линию сигнала и земли шунтируем резистором 10кОм
  • сигнал от преобразователя Pt100 к Arduino - аналоговый пин A0. Питание к любым свободным пинам G и V цифровых входов
  • Термодатчик Pt100 - к клеммам на самодельном термопреобразователе

Часы реального времени RTC DS1302

  • питание (VCC и GND) : к любым свободным пинам G и V цифровых входов шилда
  • пин RST : к цифровому пину 2
  • пин CLK : к цифровому пину 3. Обратите внимание, ШИМ пинов 3 и 11 используют один внутренний таймер, поэтому если на пине 3 уже что-то висит (например CLK RTC), не сажайте на пин 11 устройство, требующее ШИМ и наоборот. Пины ШИМ-сигналов у Arduino UNO : 3, 5, 6, 9, 10, 11
  • пин DAT : к цифровому пину 4

Модуль микро-SD карты

  • питание (VCC и GND) : к любым свободным пинам G и V цифровых входов шилда или Arduino.
  • пин MOSI : к цифровому пину 11
  • пин MISO : к цифровому пину 12
  • пин SCK : к цифровому пину 13
  • пин CS : к цифровому пину 8. Обычно пин CS подключают к 4 пину Arduino, но здесь он занят под часы.
Схема подключения регистратора

Схема подключения регистратора

ЧТО НУЖНО ДЛЯ ПРОЕКТА

  • PLC Arduino UNO (datasheet) - 1 шт
  • Sensor Shield v 5.0 (datasheet) - 1 шт
  • понижающий DC-DC преобразователь типа LM2596 (не менее 2А) (datasheet) - 1 шт
  • LCD-дисплей 1602 (datasheet) + модуль I2C - 1 шт
  • модуль часов DS1302 (datasheet) - 1 шт
  • батарейка CR2032 (datasheet) на 3 вольта - 1 шт
  • модуль микро-SD карты (datasheet) - 1 шт
  • кнопка тактовая с колпачком (datasheet) - 3 шт
  • резистор 10 кОм (0,25 Вт) - 3 шт
  • макетная плата под пайку 30х55 - 1 шт (для монтажа кнопок)
  • стойка мама-мама М3х15 - 4 шт (для монтажа LCD-дисплея)
  • гайка М3 - 50 шт и более в зависимости от способа крепления вышеуказанных элементов
  • болт М3х15, М3х10 - 20 шт и более
  • провод Dupont мама-мама или папа-мама (20 см) - 30 шт и более в зависимости от типа пинов соединяемых элементов
  • провод типа AWG - 50 см (соединение штекер - DC-DC преобразователь - Sensor Shield)
  • штыревой соединитель 40pin - 1 шт
  • разъем PBS 40pin - 1 шт
  • штекер питания DC 2.1 мм с клеммной колодкой папа и мама - 1 пара (для подключения шилда)
  • кусок оргстекла или т.п. - 20х30 см (для монтажа всех элементов)
  • болт М6х15 и гайка - 4 шт (ножки оргстекла)

СКЕТЧ

Ниже представлен скетч системы управления. В этом окне он неудобочитаем, поэтому скачать его в формате ino вы можете по этой ссылке.

Для работы этого скетча вам понадобятся дополнительные библиотеки :

  • Wire.h - библиотека для работы с протоколом I2C. Это тоже стандартная библиотека, ее устанавливать не нужно.
  • LiquidCrystal_I2C.h - библиотека для работы с LCD по протоколу I2C. Скачать.
  • iarduino_RTC.h - библиотека для работы с часами реального времени от Maxim Integrated. Скачать.
  • SPI.h - библиотека для работы с шиной SPI. Это стандартная библиотека, ее устанавливать не нужно.
  • SD.h - библиотека для работы с модулем SD-карты. Это стандартная библиотека, ее устанавливать не нужно.

Если есть возможность, проверьте эти библиотеки на наличие обновлений.