На рисунке показана схема двух канального терморегулятора, в качестве датчиков температуры используются датчики DS18B20 корпорации Dallas Semiconductor. Терморегулятор имеет рабочий диапазон температур от 0 до 125 градусов Цельсия, управление терморегулятором осуществляется при помощи трех кнопок:
- SA1 SA2 — регулировка температуры срабатывания реле
- SA3 — выбор канала при регулировании температуры
HL1 HL2 — индикатор включения нагрева (1 и 2 каналы), HL3 HL4 — индикатор опроса датчиков, в качестве индикатора используется WH1602B или аналогичный на базе контроллера HD44780.
DS18B20 — цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора. DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии так и работать в группе. Все процессы на шине управляются центральным микропроцессором. Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C.
Основной экран терморегулятора
При нажатии SA3 появится возможность установки температуры регулятора для 1 и 2 канала.
Прошивка — ds18b20_pic16f877_g1.hex — гистерезис 1 градус
ds18b20_pic16f877.hex — гистерезис 2 градуса
Печатная плата — PIC16F877a.lay6 (файл предоставлен пользователем peregar78)
Добрый день!
Скажите, а схема и прошивка двух канального терморегулятора рабочая?
Что-то не заводится схема.
Должна работать. Индикатор совсем не работает?
Попробуйте другую прошивку, в ней изменены настройки кварцевого резонатора — http://rcl-radio.ru/wp-content/uploads/2017/12/ds18b20_pic_XT.hex
Спасибо! Попробую отпишусь.
Добрый день!
Попробовал вторую прошивку-не пошла, может я не правильно прошивку загружаю в IC-Prog. По ссылке открывается окно с программой, выделяю, вставляю в блокнот, сохраняю как .txt, переименовываю в .hex, открываю в IC-Prog, программирую контроллер.
P.S. Эта схема на 100% подходит для моей задачи, хотелось бы её добить.
Здравствуйте! Нужно скачать прошивку с микроконтроллера и сравнить с исходной.
Индикатор совсем ни чего не показывает?
На индикаторе горят все квадраты в верхнем ряду (без м/контроллера то же). Не могут быть на схеме перепутаны выводы E и RS ? Как сравнить прошивки м/к и исходника?
Выводы подключения проверил, по схеме все верно.
Вероятней всего микроконтроллер не стартует, тут могут быть несколько причин:
1.Проверить емкости 22 пФ (можно добавить уменьшить или вообще убрать емкости — был случай когда микроконтроллер завелся когда убрали емкости.)
2. Что-то с кварцем.
3. Желательно замкнуть на землю свободные выводы индикатора шины данных D0 D1 D2 D3.
4. неисправный микроконтроллер (проверить можно сделав простую тестовую программу — например заставить мигать светодиод — если надо то код я напишу)
Я сам сегодня целый день не могу запустить pic16f628 тоже одна полоса и все, микроконтроллер молчит, есть подозрения что плохо промыта плата, остатки канифоли со спиртом под колодкой МК. Так же подозрение на несправность индикатора или МК. Буду думать.
Про программатор и программу ни чего не могу сказать, пользуюсь picKit2.
Спасибо! Буду вечером пробовать, про кварц я уже подумал, попробую все возможное, по итогам отпишусь.
Добрый вечер!
1. Прошивку м/к сравнил с исходником ОК;
2. Подключил, результат тот-же на индикаторе верхняя строка квадраты;
3. Считал прошивку еще раз а она пустая??? залил еще раз, сравнил все ОК;
4. Подключил, результат тот же;
2. Достал с полки старенький С1-72 на контактах индикатора E, RS, D6 ,D5, D4 прямоугольные импульсы разной скважности, на D7 лог. 1 около 5В, при дальнейшем подключении щупа к E, D6 ,D5, D4 на них лог. 1, а на RS лог. 0.
После перезапуску по питанию импульсы появляются опять но стоит коснуться щупом D7 все опять виснет.
Куда копать дальше?
Может что-то с программатором. Нужно убедиться что МК правильно прошивается.
Добрый день!
Как проверить программатор? Ведь я сравниваю считанную прошивку с исходной?
Я тут подумал, может дело в МК или индикаторе, у меня:
— PIC16F877A I/P
— QAPASS 1602A
http://rcl-radio.ru/wp-content/uploads/2017/12/test.hex
Тестовая прошивка, в ней только проверка работы индикатора и мигающий диод. Должна 100% работать. Если индикатор не включится, значит дело не в программе.
QAPASS 1602A у меня аналогичный индикатор, не могу запустить его с pic16f628a, но с pic16f877 работал. есть подозрение на нерабочий pic. pic16f628a брал на алиэкспресс, а pic16f877 в магазине.
Спасибо!
Буду пробовать, кстати, у меня МК и индикатор с алиэкспресс !?
УРА! Завелась схема, при программировании поставил бит конфигурации PWRT вместо LVP но не показывает температуру —- С, отключаю датчики показывает 0.00 С.
Прошивка ds18b20_pic_XT.hex. Что-бы это могло быть? Да кстати, тестовая завелась там я и увидел что галочки битов конфигурации по другому стоят.
http://rcl-radio.ru/wp-content/uploads/2017/12/ds18b20_pic_XT-1.hex
Исправил бит конфигурации, должна запустится.
заменил конфигурацию первого датчика, надо посмотреть что выйдет.
К сожалению не помогло, все так же прочерки.
Странно, должно работать, такое впечатление, что показания датчика вне диапазона. Буду думать.
http://rcl-radio.ru/wp-content/uploads/2017/12/ds18b20_pic_XT2.hex
А пока полностью отключил первый датчик, надо исключить конфликт уст-в.
Отключилась индикация 1-го датчика, со вторым то же самое, без датчика нули с датчиком прочерки.
Датчики пробовал другие подключить, без результата.
У меня в программе прописано, что если температура больше 150 то выводить
» — — — — » возможно именно эти знаки выводит индикатор, тогда я сниму ограничение и можно посмотреть что намерил датчик.
http://rcl-radio.ru/wp-content/uploads/2017/12/ds18b20_pic_XT3.hex
Первый датчик показывает -1.0 С, второй показывает 4095. С, при нагревании датчиков пальцами показания не меняются.