Термометр на PIC и роль конденсаторов в обвязке кварца?

Обсуждаются темы не относящиеся к журналу "РАДИО"

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение vovavova » 04 фев 2018, 17:12

Sergey7
Проверил Вашу прошивку, но что-то она не пошла. Индикатор вообще не загорался, не мог понять в чем дело, а потом понял... Вы, оказывается, переделали в корне к своей версии прошивки и саму схему подключения. Блин... сразу не обратил внимание и тупо подключал прошитый МК к своей старой схеме. Потому ничего не работало. :roll: DQ от датчика идет вообще на совершенно другой порт. В общем свою ошибку я понял, в понедельник переделаю всю схему и проверю еще раз.
vovavova
 
Сообщения: 209
Зарегистрирован: 20 сен 2012, 22:15

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение Sergey7 » 04 фев 2018, 22:35

vovavova писал(а):Sergey7
Вы, оказывается, переделали в корне к своей версии прошивки и саму схему подключения.

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

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

При разработке барометра я хотел было дополнительно использовать как комнатную температуру данные от датчика давления, смонтированного в углу платы, и при отладке на столе все отлично получалось. Но стоило смонтировать плату в корпус, с отверстиями около ВМР-180, и, несмотря на отсутствие заметного тепловыделения (вся схема потребляла менее 15 мА), температура начала подниматься градуса на полтора. В общем, пришлось от внутреннего термометра датчика давления отказаться и воткнуть DS18B20 в отверстие сбоку корпуса.
Я это к тому, что, если температура будет расти, попробуйте датчик отнести на проводах от платы немного, там у Вас что-то еще смонтировано. Удачи!
Sergey7
 
Сообщения: 235
Зарегистрирован: 24 фев 2010, 20:32

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение vovavova » 07 фев 2018, 15:04

Здравствуйте, Sergey7!
Извините за задержку с ответом, обстоятельства...
В общем, я все переделал строго по Вашей схеме Proteus, убрал все лишнее. Резисторы на сегменты поставил 200 Ом, поскольку 100 Ом, как на схеме, у меня мало, нужного количества не набралось, но и этого оказалось вполне достаточно. Без приключений, конечно, не обошлось. В начале ничего не получалось. А все потому, что я балбес... :) и фамилия моя Кутузов. :) На схеме выход с 4 вывода МК идет на R9 10 кOм, а дальше... то ли плюс, то ли минус, непонятно? Я его на минус засандалил, и произошло чудо! Датчик температуры, легким движением моей руки, превратился в элегантный «датчик движения»... то есть, эффект странный получился: подношу руку к плате – индикатор черточками загорается, отхожу от него, и он тухнет вообще. Я то думаю: во чудеса! До чего техника дошла?! Так, поди, этот термометр еще и разговаривать станет! :)
Изображение
Я то тогда еще не понял в чем дело. Вы мне в архиве скинули файл проекта в Proteus, вот я решил проверить в самом редакторе, что и по чем. Скачал редактор, установил на комп, запустил проект, нашел, как вставлять прошивку в МК, выставлять температуру, и так далее. Ну, все работает...
Изображение
Значит, стал искать причину у себя, и нашел... Переключил выход R9 на анод и ВСЕ ЗАРАБОТАЛО!! :) Yahoo!!! :)
Все измерения в пределах погрешности 0.5 градуса по разным термометрам...
Изображение
Изображение
БОЛЬШОЕ СПАСИБО ВАМ, Sergey7!!! Все работает как надо, никаких серьезных отклонений. СУПЕР!
Вы писали, что можете подкорректировать ASM так, чтобы знак минуса смещался вправо, когда показания маленькие, а то действительно не очень смотрится, например, -1.0. Получается, минус слишком далеко «оторван». Я пытался сам понять по исходнику ASM, но явно не увидел, где именно это можно подправить. Но, зато нашел, как можно управлять временем запроса на чтение показаний температуры...
Код: Выделить всё
call      PAUSE1s      ; Задержка для обработки запроса (max=750 мс)
         call      PAUSE1s      ; ПАУЗА между замерами
         call      PAUSE1s      ; ПАУЗА между замерами

3 раза вызывается процедура паузы в 1 сек. Могу сам добавить сколько угодно.
И в самой процедуре, более-менее понятно, исходя из предыдущих пояснений...
Код: Выделить всё
PAUSE1s            movlw      0x0A
               movwf      Temp3
               call      PAUSE100ms
               decfsz      Temp3,1
               goto      $-2
               return
               ;---------------------
PAUSE100ms         clrf      Temp1
               movlw      0x7E
               movwf      Temp2
   P100         incfsz      Temp1,1
               goto      $-1
               incfsz      Temp2,1
               goto      P100
               return            

Видел, что и CRC у Вас тоже проверяется, как положено. Я еще скачал MPLAB IDE, чуть позже поковыряюсь в нем. Но вот, как сдвигать минус, понять не могу. Это, видимо, где-то в «ПП ЧИСЛОВЫХ ВЫЧИСЛЕНИЙ»...
Код: Выделить всё
;------------ ПП ЧИСЛОВЫХ ВЫЧИСЛЕНИЙ ---------------------------------------
Process      
         ; DS18B20_L разряды 0-3 это доли градуса
         ; DS18B20_Н разряды 7-3 знак, 1- / 0+
...
...
...
;--------------
               clrf      LED3
               btfss      DS18B20_H,0      ; ЗНАК --------------------

Ни фига не понял. :roll: В связи с чем у меня к Вам последняя просьба... пожалуйста, не могли бы Вы подправить код, и сделать в нем смещение минуса вправо при малых значениях отрицательных температур. :roll:
vovavova
 
Сообщения: 209
Зарегистрирован: 20 сен 2012, 22:15

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение Нафис » 08 фев 2018, 12:09

Капля дёгтя в бочку мёда. На втором и третьем снимках четко видно, что подсвечиваются неработающие сегменты индикатора. На первом снимке с тире индикация нормальная.
Нафис
 
Сообщения: 281
Зарегистрирован: 12 апр 2015, 12:28

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение vovavova » 08 фев 2018, 16:57

Ан нет... прошу прощения за свою невнимательность по поводу смещение минуса, таких заявлений не было. Сейчас перечитал... ошибся, извините. Ну, тогда просто вопрос: можно ли так в принципе сделать? Если это сложно, то ладно фиг с ним, и на том спасибо всем за помощь! А по поводу подсветки лишних сегментов... так это видимо просто получился такой оптический эффект. Когда на индикатор падает яркий свет, то кажется, что идет паразитная подсветка. В темноте такого не наблюдается.
vovavova
 
Сообщения: 209
Зарегистрирован: 20 сен 2012, 22:15

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение Sergey7 » 08 фев 2018, 17:56

Здравствуйте, vovavova! Рад, что у Вас все получилось, а то я уже начал сомневаться, что моя версия завышения температуры верная.
Пару слов по схеме. Резистор с вывода 4 MCLR всегда подключают к плюсу питания, номинал не критичен, в данном случае это это вход сброса МК. В этом МК внутреннего резистора для подтяжки этого вывода к плюсу нет, как и на других линиях порта А.
Осторожнее с номиналами резисторов на индикатор, чтобы не перегрузить порт А, я сейчас не обратил внимание на номиналы, просто в моей схеме использовался зеленый индикатор (у него больше падение напряжения) да и с транзисторами на общих выводах, чтобы через светофильтр ярко просвечивал, так в схеме и остались. В инструкции сказано только о постоянном токе нагрузки макс. до 25 мА, а как рассчитывать импульсные не уточнено.

Добавил смещение минуса на разряд вправо при однозначной температуре, пробуйте, пароль QAZ, архив https://www.sendspace.com/file/f7mff3

Нафис, это особенность конструкции недорогих индикаторов. Прочерки при запуске выводились так-же, этим же прерыванием, а не прямой записью в порты. Когда-то и я чуть было не попался, в программе все просто, в прерывании TMR0(по 2 мс) сперва все разряды гасятся, затем в порт В выводится новое число, в конце прерывания включается выбранный разряд. Ошибиться негде. Если в финишном оформлении подобрать цветную пленку нужной плотности, то светодиодный дисплей смотрится хорошо.
Sergey7
 
Сообщения: 235
Зарегистрирован: 24 фев 2010, 20:32

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение Нафис » 09 фев 2018, 10:44

Для статического тока я беру падение напряжения на сегменте 1,5 вольта для красных и 2,0 вольта зеленых индикаторов. Для рабочего (импульсного) режима рассчитываю эффективное значение тока (RMS). Для "железного" гашения сегментов ввожу нерабочий цикл между выборками разрядов индикатора той же длительности, что и горение сегментов. Хотя это и не обязательно, действительно зависит от цвета свечения, типа и яркости работы индикатора. Все хорошо, молодцы одним словом.
Нафис
 
Сообщения: 281
Зарегистрирован: 12 апр 2015, 12:28

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение vovavova » 09 фев 2018, 12:54

Отлично! :) В Proteus'e все работает. На выходных проверю на практике и дам отчет...
Изображение
Изображение
Sergey7 писал(а): Осторожнее с номиналами резисторов на индикатор, чтобы не перегрузить порт А...

Ну вот, я взял 200 Oм - это в два раза больше, нежели указано на самой схеме в Proteus'e. Вроде как все нормально. Так я могу уменьшить это значение, или все-таки не стоит??? И что значит "порт А"??? :roll:
vovavova
 
Сообщения: 209
Зарегистрирован: 20 сен 2012, 22:15

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение Sergey7 » 10 фев 2018, 21:44

vovavova писал(а):
Sergey7 писал(а): Осторожнее с номиналами резисторов на индикатор, чтобы не перегрузить порт А...

Ну вот, я взял 200 Oм - это в два раза больше, нежели указано на самой схеме в Proteus'e. Вроде как все нормально. Так я могу уменьшить это значение, или все-таки не стоит??? И что значит "порт А"??? :roll:

Здравствуйте, vovavova! Как бы попроще сказать... В этом МК на схеме видно два 8-разрядных порта ввода-вывода, PORT A (линии RA0-RA7) и PORT B (RB0-RB7). К слову, RA4 и RA5 с ограниченными возможностями, об этом подробно рассказано в инструкции, чтобы долго не искать вот она на русском https://www.sendspace.com/file/h4panx

Управление индикатором динамическое, то есть разряды включаются по очереди, каждый светится по 2 мс.
Так вот сегменты у нас подключены к линиям порта В, и импульсный ток через них течет не большой. В Вашем случае =(5-1,6)/200=17 мА.
Но общие выводы индикатора подключены к выходам порта А, через которые течет импульсный ток до 8 раз выше (если в разряде включены все сегменты, включая точку). Выходит до 136 мА, на весь PORT A это нормально (до 200 мА статически), а на один вывод МК, это многовато, хотя в реальности ток ограничивается за счет увеличения падения напряжения на ключевом транзисторе порта.
В моей схеме этот ток протекал через внешние транзисторы 2N7002, поскольку мне нужен был импульсный ток через каждый сегмент по 20 мА. Если яркость получается достаточной, то я бы посоветовал для надежности увеличить номиналы резисторов, обычно современные индикаторы и при 5-10 мА довольно яркие, сэкономите электроэнергию.
Sergey7
 
Сообщения: 235
Зарегистрирован: 24 фев 2010, 20:32

Re: Термометр на PIC и роль конденсаторов в обвязке кварца?

Сообщение vovavova » 12 фев 2018, 14:34

Вчера проверял новую прошивку, но перед этим возник вопрос: сейчас хоть и февраль, но за окном +2 и дождь. Где же мне взять отрицательные температуры, да еще и двухзначные??? :roll: Пришлось пару минут просидеть в позе Мыслителя. Идея пришла сразу же, как только мне захотелось перекусить и я вспомнил про колбаску в холодильнике. ЭВРИКА!!! :o - кричал я так, что слышали даже соседи через улицу! Правда, как Архимед на радостях голышом по городу бегать не стал. :) В общем, у меня современный холодильник с морозилкой внизу, которая дает большие минусовые температуры до -17! Взял я всю плату целиком и запузырил в морозильную камеру на полчаса, и вот результат...
Изображение
После постепенного прогрева...
Изображение
Как видно... минус смещается без проблем. Все работает! :) СПАСИБО, Sergey7!!
Правда заметил, что раньше, после включения, на индикаторе загорались черточки и во время работы замечал, как термометр периодически как бы "сбрасывался" - снова появлялись черточки, а потом показания температуры. Сейчас уже по-другому: после включения загораются восьмерки, а потом показания температуры, которое уже не сбрасывается. Видно, что Вы что-то кардинально изменили. И опрос датчика теперь уже стал каждую секунду. Это нормально??? 1 сек достаточно???
Потом еще такое явление: когда температура повышается и доходит до -0.9 / -0.8, то почему-то загорается последняя точка уже после десятых долей, то есть "-0.8.", а уже на -0.7 точка исчезает. В Proteus'e такого нет. Может какой-то глюк контроллера??? Все это мелочи, не важно, конечно, но просто интересно, почему так происходит. :roll:

Sergey7 писал(а):Управление индикатором динамическое, то есть разряды включаются по очереди, каждый светится по 2 мс.

Почему нельзя подавать ток на индикаторы статически??? Это как-то связано с энергопотреблением?
Sergey7 писал(а):Если яркость получается достаточной, то я бы посоветовал для надежности увеличить номиналы резисторов, обычно современные индикаторы и при 5-10 мА довольно яркие, сэкономите электроэнергию.

Хорошо, попробую. А если нужна будет яркость повыше, то я так понял, общие выводы (порт А) нужно будет включать уже через транзисторные ключи?

P.S.
Смотрел инструкцию, что Вы прислали... Мммда... непросто все устроено в этих МК. Там читать-перечитать. Так сразу не разберешься.
vovavova
 
Сообщения: 209
Зарегистрирован: 20 сен 2012, 22:15

Пред.След.

Вернуться в Всё остальное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron