Термометр из "вольтметра"
Apr. 23rd, 2015 10:32 pmСейчас закончил преобразование "термометра", позволяющего подключить до 14 DS18x20 к трехразрядному китайскому "вольтметру" на STM8. Код можно посмотреть здесь.
Переделка совсем несложная (выпаиваются несколько деталюшек, а один резистор перепаивается с одного места в другое, если под рукой нет 0603 на 4.7кОм — с 10-килоомным при коротких проводах все тоже вполне работает):
Если просто подключить один DS18B20 или DS18S20 (второй от первого вообще ничем не отличается, точность такая же поганая, зато людям не пудрят мозг, впаривая липовые 12 бит...), то на экранчике будет отображаться считанная температура (опрос термометра 1 раз в секунду). Если поочередно "запомнить" ROM нескольких датчиков и потом их все на одну линию повесить, будет поочередно отображаться номер датчика (индикация в течение 0.3с) и температура (индикация в течение 0.7с).
Для управления используются три кнопки:
Вот такие коды ошибок могут отображаться на экранчике:
Обращаю внимание, что иногда могут отображаться совершенно бредовые значения температур, если возникают помехи или имеется плохое подключение (у меня периодически 85°C отображалось, пока на соплях вешал). Это происходит из-за того, что я так и не понял, как простым способом реализовать наркоманский алгоритм проверки CRC DS18x20.
Вот — пятисекундное видео, демонстрирующее отображение температур с двух датчиков (не обращайте внимания на кривое отображение двойки: почему-то на младшем разряде сегмент E изначально не работал).
Переделка совсем несложная (выпаиваются несколько деталюшек, а один резистор перепаивается с одного места в другое, если под рукой нет 0603 на 4.7кОм — с 10-килоомным при коротких проводах все тоже вполне работает):
Если просто подключить один DS18B20 или DS18S20 (второй от первого вообще ничем не отличается, точность такая же поганая, зато людям не пудрят мозг, впаривая липовые 12 бит...), то на экранчике будет отображаться считанная температура (опрос термометра 1 раз в секунду). Если поочередно "запомнить" ROM нескольких датчиков и потом их все на одну линию повесить, будет поочередно отображаться номер датчика (индикация в течение 0.3с) и температура (индикация в течение 0.7с).
Для управления используются три кнопки:
- Store new ROM
- сохранить ROM подключенного датчика (обязательно убедитесь, что подключен только один датчик!). При нажатии кнопки на экране высветится либо номер, под которым в дальнейшем будет отображаться данный датчик, либо код ошибки;
- Delete nonexistant
- удалить ROM неподключенных датчиков;
- Delete all
- полностью очистить все сохраненные ROM.
Вот такие коды ошибок могут отображаться на экранчике:
- ---
- отображается в самом начале: подготовка к измерениям;
- e00
- ("по нулям") - не найдено ни одного датчика;
- eab
- ("ABsent") - датчик с данным номером отсутствует, либо во время чтения произошла ошибка;
- eee
- ("Eeprom Error") - волшебным образом EEPROM была "сама собой" очищена;
- eff
- ("FFull" ☺) - EEPROM кончилась (уже сохранено 14 датчиков).
Обращаю внимание, что иногда могут отображаться совершенно бредовые значения температур, если возникают помехи или имеется плохое подключение (у меня периодически 85°C отображалось, пока на соплях вешал). Это происходит из-за того, что я так и не понял, как простым способом реализовать наркоманский алгоритм проверки CRC DS18x20.
Вот — пятисекундное видео, демонстрирующее отображение температур с двух датчиков (не обращайте внимания на кривое отображение двойки: почему-то на младшем разряде сегмент E изначально не работал).

no subject
Date: 2015-04-23 10:14 pm (UTC)no subject
Date: 2015-04-23 10:39 pm (UTC)Для полноценного регулятора эта фитюлинка уже не годится: напаивать придется много, проще с нуля на STM32F030 каком-нибудь наляпать. А вообще, кстати, есть и китайские "термостаты" на STM8 (написание прошивки для такого термостата будет моим следующим занятием). В оригинальной прошивке просто отображается температура и дается возможность установить температуру, при достижении которой будет щелкать реле. Как только температура на полградуса падает, реле отрубается. Т.е. логика явно расчитана на какие-то системы охлаждения. Я же хочу туда еще одну точку добавить + регулировку гистерезиса. Тогда можно будет и на нагрев использовать. Ну и показометр (10-килоомный терморезистор) заменить хотя бы на DS18 — всяко точность повыше будет.
Про дальность по-разному писали. У некоторых чуть ли не 100 метров было, но лучше все-таки на большие расстояния передавать по соответствующему протоколу (поставить конвертер уровней и RS-485 забульбенить).
))
Date: 2017-01-25 08:16 pm (UTC)Можете подсказать как его переделать в термометр?
Re: ))
Date: 2017-01-25 09:45 pm (UTC)Re: ))
Date: 2017-01-26 07:45 am (UTC)http://i90.fastpic.ru/big/2017/0126/22/735596c274d00774758bca7ce2516922.jpg
Микроконтроллер такой же как и в Вашей статье. Я не думал, что придётся что-то прошивать( Я в этом деле чайник. Надеялся просто выпаять несколько элементов и припаять другие( Может посмотрите мою схему и что с ней можно придумать?