Проект tinyAVR 14. Регистратор температуры

January 18, 2015 by admin Комментировать »

В этом проекте используется датчик температуры, который показывает на дисплее окружающую температуру в градусах Цельсия и Фаренгейта. Он также отображает минимальные и максимальные температуры, записанные регистратором. На рис. 4.10 приведена блок-схема проекта. Дисплей Nokia 3310 служит для отображения показаний. Кнопка на плате переключает режим индикации. В одном случае отображаются показания температуры (попеременно в градусах Цельсия и Фаренгейта), в другом — выводится график изменения температуры во времени. Устройство питается от батарей.

6 Зак 1791

Рис. 4.10. Блок-схема регистратора температуры

Спецификации проекта

Цель проекта — создать систему регистрации температуры, которая будет показывать температуру окружающей среды в градусах Цельсия или Фаренгейта, а также ее минимальные и максимальные значения. Устройство также должно отображать температуру как функцию от времени. Чтобы переносить и устанавливать устройство в любом месте, следует предусмотреть питание от батарей.

Описание устройства

На рис. 4.11 изображена принципиальная схема устройства. Поскольку в проекте используется дисплей Nokia, то для него требуется напряжение питания от 2,7 до 3,3 В. Источник питания выполнен на основе повышающего преобразователя постоянного тока TPS61070, который выдает 3,3 В от одной батарейки в 1,5 В. Батарейка подключается к клеммам SL3. Поскольку защиты от неправильной полярности нет, следует тщательно следить за правильным подключением батарейки. Дисплей Nokia подключается при помощи шины SPI через разъем SL1.

Рис. 4.11. Принципиальная схема регистратора температуры

Самый важный компонент системы — датчик температуры. Это может быть термистор, термопара или полупроводниковый датчик. Последний использовать проще всего.

Существуют разные полупроводниковые датчики температуры. Некоторые датчики выдают аналоговый сигнал (напряжение которого пропорционально температуре); другие датчики выдают цифровое значение в градусах Цельсия или Фаренгейта. Мы воспользовались температурным датчиком DS1820, который преобразует температуру в 9-разрядное число (представляющее температуру в градусах Цельсия или Фаренгейта). Точность отсчета температуры — 0,5 градуса Цельсия или 0,9 градуса Фаренгейта (в диапазоне от -55 до +125 °С или от -67 до +257 °F). Подробности смотрите в спецификации на DS1820, которую можно скачать с нашего Web-сайта по ссылке: www.avrgenius.com/tinyavrl.

Преобразованные данные можно считать с интерфейса датчика. На принципиальной схеме датчик DS1820 обозначен как SL2. На схеме показаны также четыре кнопки (S1-S4), но в данном проекте задействована только одна. Остальные кнопки потребуются в других проектах этой главы. В устройстве применен микроконтроллер Tiny44 в корпусе SMD с 14 контактами и 4 Кбайт памяти для программ. При включении питания или сбросе микроконтроллер инициализирует дисплей, опрашивает датчик DS1820 и отображает температуру (в градусах Цельсия или Фаренгейта) на дисплее. Он также хранит наблюдавшиеся минимальное и максимальное значения температуры. Пользователь может в любой момент нажать кнопку, и система переключится в другой режим, где на индикаторе вычерчиваются значения температуры как функции от времени. Система постоянно выполняет замеры температуры, но сохраняет только одно значение каждые десять минут (и вычерчивает график на дисплее). Предусмотрено хранение не более 40 значений, поэтому изменения температуры отображаются за последние 400 минут. Данные, хранящиеся в буфере, постоянно сдвигаются (для размещения новых отсчетов), более старые значения стираются.

Конструкция

Компоновку платы в программе EAGLE (а также принципиальную схему) можно скачать по ссылке: www.avrgenius.com/tinyavrl.

Рис. 4.13. Печатная плата регистратора (сторона печатных проводников)

Рис. 4.15. Дисплей регистратора в режиме отображения графика

Плата односторонняя (на стороне компонентов есть всего несколько перемычек). Стороны печатной платы показаны на рис. 4.12 и 4.13. Сначала следует смонтировать преобразователь напряжения и его навесные элементы. Паять микросхему TPS61070 нужно очень осторожно. Затем, до установки остальных компонентов необходимо протестировать напряжение на выходе TPS61070. Внешний вид дисплея регистратора в разных режимах показан на рис. 4.14 и 4.15.

Программирование

Откомпилированный код (вместе с файлом MAKEFILE) можно скачать по ссылке: www.avrgemus.com/tmyavrl.

Тактовая частота равна 1 МГц. Микроконтроллер запрограммирован при помощи STK500 в режиме программирования ISP. Датчик температуры DS1820 выполняет операции чтения и записи через однопроводной интерфейс Далласа, реализованный программно. Чтобы понять суть, вы можете заглянуть в спецификацию датчика температуры. Самые важные фрагменты кода иллюстрирует листинг 4.4.

int dsl820_read(void)

{

char busy=0;

unsigned char tempi,temp2; int result; onewire_reset();

onewire_write(OxCC);//Пропустить команду Rom onewire_write(0x44);

//Команда преобразования температуры while (busy == 0) busy = onewire_read () ; onewire_reset () ;

onewire_write(OxCC);//Пропустить команду Rom onewire_write (OxBE) ;

//Прочитать команду Scratchpad tempi = onewire_read () ; temp2 = onewire_read () ; onewire_reset () ; result = templ*5;

//Точность 0.5 градусов Цельсия

//Результат в десять раз больше, чем фактическая температура return result;

}

Функция dsi820_read опрашивает датчик DS1820 и возвращает значение, которое в десять раз больше фактической температуры в градусах Цельсия (после выполнения необходимого масштабирования). Главный бесконечный цикл программы работает в двух режимах. В первом режиме отображается текущая температура (вместе с ее минимальным и максимальным значениями) в градусах Цельсия и Фаренгейта. Во втором режиме отображается график изменения температуры. График рисуется при помощи функции graphi, которая извлекает значения для вычерчивания пикселов из массива data. Функция seticd служит для рисования осей на экране

LCD. Остальные фрагменты кода выполняют инициализацию LCD и графического режима. Кнопка S4 (РА1) переключает режим. Переход из режима рисования графика к отображению температуры (и обратно) не приводит к удалению графических данных.

Работа устройства

Регистратор спроектирован для работы от одной или двух батареек размера АА/ААА. Можно использовать как щелочные, так и перезаряжаемые элементы (никель-металлогидридные или никель-кадмиевые). Достаточно подать напряжение питания, и на дисплее начинает отображаться значение температуры. Для переключения между режимами отображения нажмите кнопку.

Источник: Гадре, Д., Занимательные проекты на базе микроконтроллеров tinyAVR / Дхананья Гадре, Нигул Мэлхотра: Пер. с англ. — СПб.: БХВ-Петербург, 2012. — 352 с.: ил. — (Электроника)

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты