Измеритель уровня и температуры воды » Программирование устройств на PIC микроконтроллерах


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

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

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

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


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


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

         Летом многие дачники пользуются душем, в котором вода нагревается на солнце в металлическом баке. Как правило, в качестве бака используют 200-литровую бочку, которую, чтобы вода лучше нагревалась, заполняют не полностью. Количество воды приходится определять визуально, что очень неудобно. Предлагаемое устройство может с достаточной для практики точностью определять степень заполнения любого бака правильной формы водой и ее температуру. Результаты измерения выводятся на ЖКИ.
         Измеритель состоит из конструктивно самостоятельных частей: погружаемой в бак измерительной линейки, основного электронного блока и блока индикации и питания. Линейка изготовлена из отрезка пластмассового профиля, имеющего форму швеллера с полками неодинаковой ширины, применяемого при монтаже пластиковых просверлены через равные интервалы 16 отверстий, в которые вставлены головками наружу винты М3 — они служат датчиками уровня и на схеме рис. 1 обозначены Е1—Е16. С обратной стороны винты закреплены гайками, под которые подложены провода, соединяющие их с разъемом XS1 — 20-контактной панелью для микросхемы, расположенной в верхней части линейки и всегда остающейся выше уровня воды. В нижней части линейки расположен датчик температуры DS1, выводы которого также соединены с контактами панели.
         После проверки правильности соединении и работоспособности датчика температуры внутренняя часть швеллера, где проложены провода залита строительным герметиком. Незалитыми оставлены корпус датчика и разъем.

         Готовая линейка установлена в баке вертикально. Ее удерживает магнит от мебельной магнитной защелки, закрепленный в полости швеллера винтами перед ее заливкой герметиком.
         Действие прибора основано на том, что сопротивление между металлическим баком и погруженным в воду датчиком значительно меньше, чем между баком и датчиком, которого вода не достигает Микроконтроллер электронного блока, действуя по записанной в него программе прежде всего проверяет состояние датчиков Е1, Е5, Е9 и Е13 Найдя среди них "сухой”, она уточняет результат, проверяя состояние трех датчиков, расположенных ниже него.
         Поскольку между дном бака и уровнем самого нижнего датчика Е1, а также между уровнями любых двух соседних датчиков, заключена 1/16 часть емкости бака, микроконтроллер вычисляет количество воды в нем, умножая известный объем этой доли ("мерку") на номер самого верхнего датчика, находящегося ниже уровня воды.
         В приложенных к статье программах объем "мерки" задан равным 12,5 л. Чтобы изменить его, нужно найти в исходном ассемблерном тексте программы следующий фрагмент:
         movlw 19 ; (11001)=12,5.
         M0VWF МЕРКА ; УСТАНОВКА КАЛИБРОВКИ.
         и заменить в его первой строке шестнадцатеричную константу 19 (что соответствует 12,5 л) удвоенным значением определенного экспериментально или расчетным путем объема "мерки" в литрах округленным до целого числа. Это число при записи в программу тоже, конечно, должно быть выражено в шестнадцатеричной системе. После изменения константы программу необходимо оттранслировать заново. Это можно сделать с помощью известной среды разработки программ MPLAB.

         К сожалению, разработанная программа не может правильно вычислить объем воды, превышающий 255 л. Если это необходимо, объем "мерки", вводимый в программу, нужно уменьшить, например, вдвое, запомнить поправочный коэффициент и умножать на него показания прибора.
         Схема электронного блока измерителя показана на рис. 2. Коммутатор, собранный на двух микросхемах-мультиплексорах DD2 и DD3, по командам микроконтроллера DD1 поочередно подключает к нему датчики уровня. Поскольку в микроконтроллере программно включены резисторы, соединяющие его входы с плюсом питания, не погруженному в воду датчику соответствует уровень лог. 1, а погруженному — лог 0. На выходах RC4 и RC5 микроконтроллер формирует сигналы управления мультиплексорами. С выводом RA4 соединена цепь данных датчика температуры.
         Выходы RC0—RC2 используются для вывода информации на многоразрядный ЖКИ HG1, выполненный по технологии "контроллер на стекле" (англ. Controller on Glass — COG) Первоначально был применен девятиразрядный COG-индикатор TIC9162, но оказалось, что его трудно найти в продаже. Поэтому предназначенная для работы с ним программа YPOBEH была переработана под аналогичные но восьмиразрядные индикаторы TIC55 и TIC8148. Она получила название YPOBEH55, С программой для индикатора TIC9162 будет работать и индикатор TIC55, но в его младшем разряде не будет отображен символ градуса.

         Печатная плата электронного блока изображена на рис. 3 Пронумерованные контактные площадки по ее периметру соединены жгутом проводов длиной 20 см с соответствующими контактами разъема ХР1, представляющим собой небольшую печатную плату с двумя рядами по 10 контактных площадок с шагом 2,5 мм. Расстояние между рядами — 7,5 мм. В отверстия этих площадок впаяны штыри, сделанные из выводов резисторов, Жгут пропущен внутрь бака, и его разъем сочленен с разъемом XS1 измерительной линейки.
         Плата помещена в унифицированный корпус Z-67 (рис. 4), который с помощью магнита закреплен на внешней поверхности бака Для защиты от влаги все щели в нем тщательно промазаны герметиком.
         Индикатор HG1 и батарея GB1 с выключателем SA1 расположены на отдельной печатной плате (рис. 5), чертеж которой ввиду простоты не приводится. Вывод 6 индикатора TIC55 оставлен свободным Образующие батарею гальванические элементы типоразмера АА помещены в укрепленный на плате пластиковый батарейный отсек. Поскольку потребляемый измерителем ток не превышает 1.5 мА, а используют его кратковременно, комплекта элементов питания хватает на весь летний сезон.
         Соединение платы индикации и питания с основной платой — без разъемов жгутом проводов длиной 1,5...2 м. Можно использовать кабель UTR применяемый для соединения компьютеров в локальных сетях Для платы индикации изготовлен корпус из прозрачной пластмассы, хорошо склеивающейся дихлорэтаном. Плату в корпусе располагают в месте, защищенном от атмосферных осадков.
         Вместо мультиплексоров К561КП1 можно применить их импортные аналоги CD4052. Датчик температуры — DS18S20 в корпусе ТО-92 Его может заменить датчик DS1820
    Материал взят из: Журнала Радио 2010 №8

    В архиве Печатная плата, Прошивка для микроконтроллера PIC16F630 и Исходный код программы на ассемблере

    uroven.rar [15,5 Kb] (cкачиваний: 442)

    Комментарии