|
#1
|
|||
|
|||
Delphi7 и DS18B20
Добрый день.
Если кому не жалко дайте пример кода для чтения температуры с датчика DS18B20. Есть желание попробовать сделать самописец, для записи температуры с 3х датчиков на компьютер, и построения графиков. |
#2
|
||||
|
||||
У меня есть опыт такой разработки, только для микроконтроллеров. Самый разумный вариант - контроллер, читающий температуру с датчиков, и выдающий результаты в порт. Но это совсем другая история...
Через какой интерфейс собираетесь делать обмен данными? Там в протоколе есть местами довольно жёсткие требования по длительностям импульсов. Например, "не позднее чем через 10 мкс после ... мастер должен ...". Типовые временнЫе интервалы - 15 и 60 мкс. Плюс к этому у Вас несколько датчиков, и это значит, что либо Вы вешаете их на одну шину (протокол это позволяет сделать), но для этого надо предварительно прочитать ID-коды каждого датчика, либо делаете 3 канала с их мультиплексированием. Но главное - это способность Вашей системы формировать (и отслеживать) точные временнЫе интервалы, независимо от того, что делается на компьютере. Так что не уверен, что так просто получится это сделать (хотя где-то глубоко в памяти сидит подозрение, что где-то такую реализацию я уже видел. Могу ошибаться, т.к. склероз). Последний раз редактировалось Guaho, 30.04.2020 в 15:17. |
#3
|
|||
|
|||
Недавно я закончил устройство которое измеряет температуру сохраняет её в памяти МК и затем считывается ПК и рисует график температуры,(суточный самописец). Сейчас стоит зада постоянно измерять температуру в 3-х точках, и записывать её в ПК. В дальнейшем планирую делать тоже самое только уже в 40 точках. Вот по этому хотел работать напрямую с ПК, без промежуточного МК. Сейчас пока пытаюсь снять показания с двух датчиков на одной линии с помощью МК. Не удаётся прочитать их ID, хотя МК видит что на линии 2 датчика.
|
#4
|
||||
|
||||
Я поступал в такой ситуации тупо: каждый датчик (оба работали в паразитном режиме) включался в линию через свой джампер. Таким образом последовательно прочёл их ID. Знаю, что есть специальная процедура для чтения без отключения "лишних" датчиков на шине, но она шибко замудрёная, как по мне, и не стал я заморачиваться с этим.
|
#5
|
|||
|
|||
Вопрос остался, пример кода в Delphi7, для связи DS18B20 с компом. Подскажите кому не лень.
|
#6
|
||||
|
||||
Последний раз редактировалось Guaho, 12.05.2020 в 20:30. |
#7
|
|||
|
|||
Что то там нет доступа к исходнику, нужен реально работающий кусок программы что бы можно было запустить в Delphi и он работал. А затем уже разбираться с кодом. Иначе мало толку от каких то непонятных записей, всё равно не смогу разобраться. Для первого раза нужен рабочий пример.
|
#8
|
||||
|
||||
Так напишите автору, попросите исходник. Других ссылок по теме я не нашёл.
|
#9
|
||||
|
||||
Если Вам сложно разобраться с физической частью, то купите Ардуино самую простую и по примерам из интернета залейте в нее скетч с работой с датчиками ds18b20 по 1-wire и передачей данных к компьютеру через последовательный порт.
Задача решается тупым копированием скетчей и скачиванием компонента для работы с последовательным портом. Беглый поиск дает нужные результаты: Arduino+ds18b20 Delphi+Com-port Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. Последний раз редактировалось dr. F.I.N., 15.05.2020 в 19:26. |
#10
|
|||
|
|||
В том то и дело, что с железом проблем нет. Я уже делал устройства управляемые с Com порта. Вопрос состоит в примере кода, получения температуры, с датчика DS18B20, а далее я уже используя этот пример буду развивать программу под свои нужды.
|