Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ.

Форум самогонщиков Приборы и электр(он)ика
mekkaod Научный сотрудник Одесса 3.4K 2.3K
09 Дек. 18, 18:45
    Думаю не найдётся такого электронщика который в своей жизни не пытался собрать своими руками приёмник(хоть детекторный), электронные часы и термометр.
Приёмник и часы я ещё в школе прошел,а вот термометром занялся только сейчас.
Получилась конфетка, хотя оценить сможете и сами.
   Конечно затеял я это не от безделья, столкнувшись с вопросом поддержания оптимального режима для созревания бражки и навозившись с электромеханической комплектухой прошлого столетия, я решил попробовать изменить жизнь к лучшему.
   Постановка задачи:
Создание устройства по поддержанию оптимальной температуры в ёмкости с брагой, объёмом до 200 литров.
   В качестве теплообменника используется проточный нагреватель - охладитель по схеме, воздух-стенка-жидкость.
   Воздух соответственно может быть нагрет воздушным же теном или заменён холодным воздухом окружающей среды.
   В состав теплообменника входит:
 1.Вентилятор обдува тена
 2.Тен
 3.Вентилятор подачи холодного воздуха
 4.Насос перекачки браги
   Изготовленный термометр как раз и управляет этими четырьмя устройствами по гибкой программе, алгоритм которой я сам и разработал.
img_1387.jpg
Img_1387. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.

Электронный термометр регулятор с программируемыми параметрами и энергонезависимой памятью.
    - датчики температуры             DS18B20   2 шт.
    - диапазон измерения температуры  от -55 до 0 градацией 1 градус
                                                             от 0 до 110 градацией 0,1 градус
    - диапазон индикации                
      ориентировочной
      спиртуозности кипящей                
      жидкости                         от 0 до 97 %
    - индикаторы                       светодиодные 3 разрядные 7 сегментные 2 шт.
    - управление                       двухуровневое меню   3 кнопки
    - линии коммутации                 симисторы BTA16  4 шт.
    - метод управления                 пропорционально интегральный
    - корпус                           моноблок на DIN рейку
    - питание                          ~ 220 вольт + встроенный аккумулятор

набор файлов для MPLAB IDE, PICkit3 и Proteus в архиве внизу,
пакеты программ тут:
https://drive.google.com/...C_i86RKYPYsm4py
IMG_1387.JPG
IMG_1387.JPG Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
IMG_1383.JPG
IMG_1383.JPG Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
IMG_1371.JPG
IMG_1371.JPG Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.

648_2DS_fin.bmp 2.7 Мб
pic16f648_2DS18b20.zip 287.5 Кб
mekkaod Научный сотрудник Одесса 3.4K 2.3K
Отв.1  10 Дек. 18, 11:46
ОПИСАНИЕ РАБОТЫ ТЕРМОМЕТРА:
1. Электропитание - осуществляется от сети переменного тока.
Прибор может выполнять функции регулятора только подключенным к сети. При пропадании сети, или намеренном отключении от неё, прибор переходит в режим работы от аккумулятора что позволяет лишь индицировать параметры и изменять настройки.
Прибор включается в работу сразу при подаче электропитания если до этого он не был переведен в энергосберегающий режим , нажатием на кнопку минус - левую на панеле. Выход из энергосберегающего режима любой другой кнопкой.
2. Управление параметрами - осуществляется при помощи кнопок, с визуализацией выбранного режима на индикаторах.
Вход в управление выполняется нажатием на среднюю кнопку, при этом на верхнем экране появляется надпись oPt, а на нижнем выбранный по умолчанию режим показа температуры второго термометра t2, или другого ,если было изменение.
Режимов бывает четыре.
В зависимости от выбора - на нижнем индикаторе отображается:
1. t1 - спиртуозность кипящей спиртовой смеси в которую установлен первый термометр
2. t2 - температура второго термометра
3. Pid - мощность на тене в зависимости от настроек пропорционально-интегральной регулировки - ПИ.
4. run - состояние параметра включено/выключено, для всех выходных симисторов сразу.
img_1394.jpg
Img_1394. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1395.jpg
Img_1395. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1396.jpg
Img_1396. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1397.jpg
Img_1397. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.

После выбора желаемого для индикации состояния, можно перейти к его изменению путем повторного нажатия на среднюю кнопку.
Рассмотрим на примере изменения параметров термометра t1.
Первое нажатие средней кнопки переводит в режим:
img_1394.jpg
Img_1394. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.

второе нажатие
img_1398.jpg
Img_1398. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1399.jpg
Img_1399. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1400.jpg
Img_1400. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1401.jpg
Img_1401. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1402.jpg
Img_1402. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.
,
img_1405.jpg
Img_1405. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.

и так далее.
подробную инструкцию я опубликую когда напишу.
Да, если термометр не подключен физически то вместо его температуры индицируется:
img_1386.jpg
Img_1386. Самодельный терморегулятор на DS18B20 и PIC16F648A, с программой на языке СИ. Приборы и электр(он)ика.

продолжение после вопросов, если будут...
IvanAltay Доцент Бийск 1.6K 323
Отв.2  11 Дек. 18, 18:14
mekkaod, круто, на таком не дорогом процессоре сделать. Я на esp32 это всё сильно быстрее сделал на C++.
[DS18B20 vs TMP36 vs термопара ? Что лучше при измерении температуры Ардуинкой?]
Прилично подороже вышло. 2 шт esp32 LoRa - 2 тыра. Но и круче значительно, есть ещё терминал с радиоканалом 433мГц и дистанционное управление.

Добавлено через 10мин.:

Тут http://tabak.aaa22.ru/viewtopic.php?id=32
Выложил свои скетчи на С++. Обработка 3шт ds18b20(на одном порту градусники все висят) и передача данных на приёмник аналогичного терминального устройства 433мГц по протоколу LoRa. На родных антеннах, 250..300м - стабильно работает в городской застройке. Можно и дуплекс обратный сделать, с терминала, для функции ДУ в терминале.
mekkaod Научный сотрудник Одесса 3.4K 2.3K
Отв.3  12 Дек. 18, 09:55
IvanAltay, я даже не сомневаюсь что можно круче ))).
мне просто было нужно такое устройство малой кровью.
адресацию термометров я тоже в дальнейшем попробую осилить, на ПК у меня всё работает под VB 6.0.
просто на этом PIC слишком уж мало ресурсов.
А к этому комплекту я сейчас допилю на втором PIC-е управление парой шаговых двигателей и закрою тему с автоматизацией кубовой рект.колонны раз и навсегда.
И на счет радиоканала может быть интересно , например на дешевом контроллере с батарейным питанием делать термометр и выносить его куда захочешь, а всю информацию собирать в маму с дисплеем.
IvanAltay Доцент Бийск 1.6K 323
Отв.4  18 Дек. 18, 19:41
адресацию термометров я тоже в дальнейшем попробую осилитьmekkaod, 12 Дек. 18, 09:55
А вот в Arduino IDE, для esp32 уже добрые люди накатали библиотеку для работы с устройствами OneWire, просто подключаешь библиотеку на СИ++ #include <OneWire.h> и понеслась душа в рай. Не надо самому на низком уровне протокол писать, уже сделали всё очень грамотные люди. Надо DS18B20 обработать, да ради бога, подключаем библиотеку #include <DallasTemperature.h>
Я, лет 20 тому назад, для Атмеловского процессора на ассемблере, написал код для вывода цЫфры на семисегментный кластер светодиодного индикатора. Кажется, месяц мудохался(была практика институтская на военном заводе). Лет 5 назад, пытался мучить Rspberry PI, ну нечто сумел выводить на GIPIO шину(типа мигающих светодиодов и руление ШИМ мотором). И вот, примерно в начале лета этого года, заинтересовался Ардуино - конкретно ESP32. За несколько месяцев, у меня реальный прорыв случился в этой теме. Самый крутой ныне радиолюбительский микрокомп есть - ESP32.

Добавлено через 22мин.:

mekkaod, вообще, отладочная плата типа ESP32 DEVKIT TV1, штука относительно не дорогая. Примерно 500 руб.
https://ru.aliexpress.com/...-0c2b096e5549-0
Можно и подешевле найти. У меня такая плата есть. Прям рай программиста. Разворачиваешь под виндой 7 например Arduino IDE бесплатную, качаешь библиотеки, подключаешь плату кабелем USB/microUsb к компу. И сразу всё работает! На плате уже всё есть. Очень удобно на лету 55 раз перепрошивать скетчь, куча памяти и т.п.
ys1797 Доцент Санкт-Петербург 1K 338
Отв.5  19 Дек. 18, 19:47
IvanAltay, а что не esp-idf? Зачем лишний глюкогенератор в виде ардуиновской прослойки?
IvanAltay Доцент Бийск 1.6K 323
Отв.6  20 Дек. 18, 21:10
а что не esp-idf?ys1797, 19 Дек. 18, 19:47
Ну так вышло, что для arduino IDE куча статей и видюх для начинающих. Я половину информации, почерпнул с ютуба, лежишь себе на диване, а тебе в видеоролике добрые люди рассказывают всё и пальцем показывают куда чего втыкать и как настраивать. Боже мой, как же теперь легко учиться! Вот помню 1995 г., мне за счастливку было получить решебник Демидовича по высшей математике, в читальном зале(реально на всех первокурсников учебников не хватало). И это был один из лучших вузов страны - ТГУ. И эти кошмарные лекции, которые сам потом не можешь прочитать, особенно если попадётся профессор с не членораздельной дикцией.
Mnz Магистр Город 254 86
Отв.7  03 Янв. 19, 01:12
просто на этом PIC слишком уж мало ресурсов.mekkaod, 12 Дек. 18, 09:55
Почему не взял микроконтроллер по мощнее, так сказать с запасом? Сейчас недорого (около 70 рублей) продаются контроллеры с 128 КБ флеша и 20 КБ ОЗУ. Для термометра больше чем достаточно и остается много ресурсов для дальнейшего совершенствования и расширения функционала. Упомянутые шаговые двигатели к не муже можно было бы подключить.

mekkaod Научный сотрудник Одесса 3.4K 2.3K
Отв.8  03 Янв. 19, 23:01
вариантов есть бесконечное множество, и я думаю, что подходит любой микропроцессор, и программу можно под него адаптировать.
я вообще пишу для ПК, но и для оперативных вещей делаю на микроконтроллерах.
Скоро будет РМ-2 с внешним управлением, тоже интересная штука.
R1d3 Студент Белгород 37 2
Отв.9  07 Апр. 20, 05:39
Скажите а 628а можно применить без сильных переделок прошивки
mekkaod Научный сотрудник Одесса 3.4K 2.3K
Отв.10  07 Апр. 20, 08:46
R1d3, в 628 не влезла программа регулировки, там формулы, а измерительная часть влазит .