Цитата mikhail09p (
)
Если не сложно, покажите. До сих пор не знаю толком, как читать айди датчика...
' пример работы с несколькими датчиками 18В20 на одной линии.
' Для определения ID каждого датчика нужно запускать первые 5 строк (Temper)
' и по очереди подключать датчики - в начале подключаете один датчик, считываете его "ID" и записываете
' OWrite DQ, 1, [$55, $28, $30, $C5, $B8, $00, $00, $00, $8E, $44]
' OWrite DQ, 1, [$55, $28, хх, хх, хх, хх, хх, хх, хх, $44] - где хх "ID" 18В20
' 1 - режим чтения-записи (от 1 до 8) описан в хэлпе на протон
Temper:
' OWrite DQ, 1, [$33]
' ORead DQ, 0, [ID1]
' ORead DQ, 0, [ID1, ID2, ID3, ID4, ID5, ID6, ID7]
' Print At 1, 1, hex2 ID1, Hex2 ID2, Hex2 ID3, Hex2 ID4, Hex2 ID5, Hex2 ID6, Hex2 ID7
'GoTo Temper
'Потом, подключили их все на одну линию
OWrite DQ, 1, [$55, $28, $30, $C5, $B8, $00, $00, $00, $8E, $44] 'команда старта и вызова датчиков
DelayMS 800
OWrite DQ, 1, [$55, $00, $00, $00, $00, $00, $00, $00, $00, $44] 'команда старта и вызова датчика с №00(пишем код датчика(8 байт) с которого считываем данные
OWrite DQ, 1, [$55, $00, $00, $00, $00, $00, $00, $00, $00, $BE] 'команда чтения из ОЗУ датчика №00 значения температуры
ORead DQ, 2, [R_Temp1.LowByte, R_Temp1.HighByte]
OWrite DQ, 1, [$55, $11, $11, $11, $11, $11, $11, $11, $11, $44] 'команда старта и вызова датчика с №11
OWrite DQ, 1, [$55, $11, $11, $11, $11, $11, $11, $11, $11, $BE]
ORead DQ, 2, [R_Temp2.LowByte, R_Temp2.HighByte]
R_Temp1 = R_Temp1 / 16
R_Temp2 = R_Temp2 / 16
Print At 1, 1, Dec R_Temp1, " C"
Print At 2, 1, Dec R_Temp2, " C"
DelayMS 1000
Cls
GoTo Temper