Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: demanik, ivan_fd  
Диагностика отказа DS18B20
MiXaS Дата: Чт, 29.05.2014, 09:45  |                                                                                                                Сообщение # 16
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 549
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

У меня редакция текста это просто вилы! Чаще всего выхожу с планшета galaxy tab 7.7, браузер опера (своего компа нет, да и не нужен). Так вот, печатает еще нормально, но как удалять, так это танцы с бубном. То не удоляет совсем, то потом как разгонется и удоляет все. Поэтому иногда редактировать просто не хочется.
mikhail09p Дата: Чт, 29.05.2014, 23:32  |                                                                                                                Сообщение # 17
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Цитата MiXaS ()
Я еще заморочился сделал меню, которое читало айди датчика и предлогало записать к определенному значению, например, айди для датчика уличного... а потом все в еепром.
Если не сложно, покажите. До сих пор не знаю толком, как читать айди датчика...
xvovanx Дата: Пт, 30.05.2014, 09:05  |                                                                                                                Сообщение # 18
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 328
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата 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

Сообщение отредактировал xvovanx - Пт, 30.05.2014, 09:07
mikhail09p Дата: Сб, 31.05.2014, 10:58  |                                                                                                                Сообщение # 19
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Спасибо, понятно.
А как заменить датчик потом на объекте ?
Нельзя считать айди двух подключённых датчиков ?
ivan_fd Дата: Сб, 31.05.2014, 11:31  |                                                                                                                Сообщение # 20
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата mikhail09p ()
А как заменить датчик потом на объекте ?

Программа должна быть написана так, что бы можно было менять датчики в любое время.

Я делал так:
Есть на одной линии два датчика. Подключаем датчик №1, считываем его ID, записываем в EEPROM.
Потом то же самое для второго датчика. И в любой момент, когда нужно поменять датчик, просто ставим тот который будем менять и считываем его код.
Цитата mikhail09p ()
Нельзя считать айди двух подключённых датчиков ?

Можно считать, но это очень не просто. Посмотрите в даташите, там есть описание алгоритма определения кода.

Посмотрите вот эту ссылку http://www.maximintegrated.com/en/app-notes/index.mvp/id/187, там хорошее описание и пример.

Сообщение отредактировал ivan_fd - Сб, 31.05.2014, 13:29
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: