Страница 2 из 2

DS18B20 + 74HC595

Добавлено: 04 апр 2018, 20:47
sillver
неправильно показывает температуру. подозреваю что не правильно конвертирую типы.

DS18B20 + 74HC595

Добавлено: 05 апр 2018, 22:53
sillver
Все мысли кончились???

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 00:13
Ezhov_s
Сделай скриншот проекта, а то не понятно на словах в чем проблема.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 08:51
Sancho
sillver писал(а): 05 апр 2018, 22:53Все мысли кончились???
Питание.
Сделай нормальное питание на датчик, и 595 отдельным + запитай. Чудес не бывает.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 09:30
KSP
Все таки не понятно, что значит показывает неправильно , что значения переворачивает или врет с температурой?? И если не трудно попробуйте этот проект , что он будет показывать.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 10:08
Labu559
Sancho писал(а): 06 апр 2018, 08:51Чудес не бывает
Это точно, но так хочется верить. :wizard: Это в том плане, что паразитный конденсатор накапливающий энергию для измерения и преобразования температуры в течении 1000 мсек, успеет зарядиться между интервалами измерений в 1 сек.(тех же 1000 мс.) выставленные в настройках датчика, при том, что еще нужно при считывании температуры с одного термодатчика DS1820:
1) послать сигнал обнуления линии (480...960 мкc);
2) принять импульс присутствия или заполнить время паузой (60...240 мкc);
3) послать команду пропуска идентификации 0xCC;
4) послать команду начала преобразования 0x44;
5) пауза не менее 750 мкc для завершения процесса преобразования;
6) обнулить линию;
7) послать команду пропуска идентификации 0xCC;
8) послать команду считывания блокнота 0xBE;
9) принять 9 байт;
10) выделить и проанализировать бит десятых долей градуса;
11) проанализировать бит знака;
12) если знак отрицательный, то перевести значение температуры в дополнительный код.
sillver писал(а): 05 апр 2018, 22:53Все мысли кончились
Почитайте и уверен, что мысли появятся. Да и с подтяжкой у Вас непонятно как, ведь это через неё заряжаеся паразитная ёмкость датчика.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 10:37
KSP
Блок который я вставил в проект первые 11 пунктов не выполняет, поэтому на каждый пин можно подключить только один датчик я это проверял на Modbus , как только ставлю этот блок слейв работает на любой скорости , без блока начинает терять связь.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 11:09
Labu559
KSP писал(а): 06 апр 2018, 10:37Блок который я вставил в проект первые 11 пунктов не выполняет
[spoiler= Ваш блок, можно ещё библиотеку посмотреть Oneware]
DS18b20.png
[/spoiler]
Извините, что может непонятно изъясняюсь. Я предположил, что паразитная емкость не обеспечивает необходимым током питания датчик во время измерений (работа двух генераторов, один из которых термозависимый), преобразования данных разницы генераторов, записи данных в ЕЕПРОМ датчика. Если датчик работает с нормальным питанием, МК дает комманду DS18b20 переключиться на шину питания в момент этих действий. Этого не происходит при паразитном питании. Заряд накапливается с шины данных по которой в данный момент происходит "общение" МК низким уровнем (длительностью этого уровня точнее) с датчиком. Тока может попросту не хватать. Вот моя трактовка (может где-то допускаю искажения, извините) тех.доков. Потому прикладываю всегда источники информации.
Ребята, у ТС в проекте паразитное питание датчика, об его проекте и веду речь! И ув. Sancho о том же.

P.S. Но! Если в мониторе порта всё Ок - он получает данные через буфер с обновлением (какие там у Вас не знаю условия), а 595 в каждом цикле Loop обновляет показания, то может нужна промежуточная переменная с условием перезаписи. Это надо код смотреть штатного блока от куда данные считываются, с переменной или ЕЕПРОМ. Но однажды помню о похожей проблеме писал ув.Phazz c TM1637(там тоже блок в каждом цикле обновлялся). Не разбирались, просто вставили ПБлок от автора RedSky DS18b20_(Code) и всё заработало. Но если паразитное питание- необходимость, то как и блок из проекта ув.KSP(автор ув. nik2-2005) - похоже не помогут.
Ещё, при частом опросе DS18b20 саморазогревается. Такие попытки приводят совсем к другому чем ожидаемый результату точности контроля.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 12:08
KSP
А я и не говорил, что блок мой я его года два назад скачал на старом сайте, автора не помню, на новом сайте его уже нет. Так , что если автор найдется пусть выложит его еще раз. Насколько я понял он просто считывает показания с шины по сигналу на входе, а датчик сам все время показания на шину выдает без всяких запросов он так устроен.

DS18B20 + 74HC595

Добавлено: 06 апр 2018, 17:17
Labu559
KSP писал(а): 06 апр 2018, 12:08датчик сам все время показания на шину выдает без всяких запросов
Датчик, как и девушка не против дать, но оба хотят поговорить перед этим, причем оба по протоколу. В первом случае обязательный протокол в 26 сообщении и рисунке в 28-м, во втором можно кое-что пропустить. Надеюсь шутка не испортит предпраздничного настроения никому. Всем весёлых праздников и :kiss: без "протоколов".