Устройство записи температуры на PIC12F683 » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Какой средой программирования вы пользуетесь?


MPLab/MPLabX
MicroC
MicroBasic
MicroPascal
Другой


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Устройство записи температуры на PIC12F683
    Автор публикации: alex Просмотров: 8205 Добавлен: 19-07-2012, 19:34 Комментарии: 0

         Этот проект для записи температуры использует микроконтроллер PIC, EEPROM с последовательным интерфейсом и термистор.
         Измерение температуры и ее сохранение производится с периодичностью, выставленной пользователем; запись происходит от 1 секунды до 256 секунд. Временной интервал установливается путем записи длительности и времени запуска в EEPROM.
         Большую часть времени PIC находится в спящем режиме, и EEPROM не активна. Это дает очень малое потребление потребление - приблизительно 50 мкА или приблизительно 1 мА/ч в день.
         Используя EEPROM 32 кБ, можно сохранить до 32000 измерений. Если записывать измерения каждые 30 секунд, то памяти хватит на 11 дней.
         Данная аналоговая схема и термистор позволяют регистрировать температуру от -40 °C до +100 °C, но линейность будет только в диапазоне от -10°C до 40 °C
    Готовое устройство

         На этой фотографии устройство регистрации температуры показано с подключенным внешним термистором. К разъему на конце платы подведены питание, тактовая частота и данные I2C и аналоговый вход.
         Полный размер готового устройства составляет 40 мм в длину, 26 мм в ширину и 16 мм в высоту.

         На этом фото устройство регистрации температуры соединено с блоком из 4 батареек типоразмера AAA. Плата (v.1)

         Первая версия устройства была собрана на макетной плате с микросхемами в корпусах DIP и традиционными выводными пассивными компонентами.
         Микроконтроллер находится слева от цента печатной платы, микросхема EEPROM смонтирована вертикально для сохранения места, справа от центра.
         Используемые внешние разъемы – 1.3 мм разъем питания и 5-контактный однорядный разъем справа.
         Другие компоненты: разъем для программирования с диодом и резистором вверху слева, кварцевый резонатор и 2 конденсатора слева от PIC, два подтягивающих резистора для I2C перед микросхемой EEPROM и резистор для деления потенциала термистора вверху справа.
         Печатная плата (версия 2)

         Вторая версия устройства собрана на односторонней печатной плате домашнего производства с микросхемами в корпусе SO8 и пассивными компонентами для планарного монтажа.
         Микросхемы имеют шаг выводов 1.27 мм, фильтрующий конденсатор в цепи питания имеет корпус 0805 (2×1.27 мм), резисторы в корпусах 1206 (3×1.5 мм). Кварцевый резонатор и его конденсаторы и разъемы такие же как и в предыдущей версии. Дорожки были разведены с шириной 0.5 мм.
         Программа для PIC контроллера
         Программа для PIC контроллера написана на ассемблере и основана на предыдущих проектах, в которых использовался I2C интерфейс. Микросхема EEPROM, контроллер и внешний разъем подключены к одной шине I2C. Контроллер не использует шину до тех пор, пока термистор не будет подключен, при этом адрес продолжает инкрементироваться. Таким образом, повреждения данных будут видны.
         Когда измерение температуры не производится, контроллер находится в спящем режиме. Он «просыпается» раз в секунду (используя внешний кварцевый резонатор и внутренний счетчик) чтобы проверить, не пора ли сделать измерение. Интервал измерений хранится в EEPROM по строго определенному адресу и считывается при включении питания.
         Термистор и резистор формируют делитель напряжения, которое измеряется встроенным АЦП PIC контроллера. Измерение производится четыре раза, и четыре значения складываются. Это позволяет производить измерения немного точнее, так как среднее значение четырех измерений будет ближе к истинному значению, чем результат одного измерения, в связи с шумом, присутствующим в схеме.
         Значения, полученные с АЦП, сохраняются непосредственно, без преобразования в значения температуры. Для экономии места в памяти без потери точности измерений, изменение значения по сравнению с предыдущим измерением сохраняется, по возможности, в 1 байте. При отсутствии такой возможности используются 2 байта. Если значение изменилось с последнего момента не более чем на ±112, записывается разница. Если изменения значения превышают этот порог, записываются 2 байта, при этом первый байт имеет флаг, указывающий на то, что число хранится в двух байтах.
         В устройстве используется контроллер PIC12F683, работающий от внутреннего генератора на частоте 4 МГц. I2C интерфейс работает на частоте около 100 кГц, при этом интерфейс реализован программно, PIC SSP не используется.
         Полная информация по этому проекту доступна для скачивания. Она включает библиотеку функций для I2C интерфейса, схему, расположения элементов на печатной плате и различные программы на С. Этот проект включен в библиотеку library of PIC code, которая доступна для загрузки.
         Программа для ПК
         Чтобы перезапустить устройство имеется программа, которая очищает всю EEPROM (до 0xff) и записывает 32 байтный заголовок со временем запуска и интервалом измерений. PIC контроллер использует значение интервала измерений, чтобы определять когда делать измерение, значение времени запуска используется программой, которая обрабатывает данные.
         Чтобы прочитать данные, есть программа, которая считывает все содержимое EEPROM и выделяет из него время старта, интервал измерений и «сырые» данные. Данные из каждой области EEPROM преобразуются в дату, время, измеренное значение и температуру.
         Схема
    Схема устройства регистрации температуры

         Схема очень проста: один резистор для встроенного АЦП, два – для интерфейса I2C, микросхема EEPROM, интерфейс для программирования PIC (разъем, 1 диод и 1 резистор), тактовый генератор (резонатор и 2 конденсатора).
         Расположение элементов на плате, версия 1

         На этой простой схеме показан монтаж элементов на макетной плате. Это вид сверху, такой же, как на фотографии.
    Расположение элементов на плате, версия 2

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

         Устройство было помещено рядом с домашним термостатом на 10 дней зимой в начале 2007. На графике показаны измеренная температура и установки термостата («умный» термостат, достигающий установленной температуры за определенное время). Измеренные данные явно соответствуют установкам термостата: когда термостат включен в течение дня, и когда выключен ночью, и температура быстро спадает.
         В архиве Плата, исходники и прошивка

    temperaturelogger.rar [131,33 Kb] (cкачиваний: 649)

    Комментарии