Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Работа с несколькими DS18B20
Работа с несколькими DS18B20
k_valera59 Дата: Чт, 06.12.2012, 04:42  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 4
Репутация: 0   ±
Замечания:   ±
На сайте с 27.03.2012

Статус: Offline

Помогите с программной реализацией работы с несколькими датчиками DS18B20. Возникли затруднения с получением ID номеров датчиков, не совсем понятно
как это реализуется в PicBasic.


Valera1808
ЯНДЕКС Дата: 06.12.2012
Matrix252005 Дата: Чт, 06.12.2012, 10:26  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

k_valera59, я подставляю датчики по одному и считываю их ID при помощи этого:

OWrite DQ, 1, [$33]
ORead DQ, 0, [ID1]
ORead DQ, 0, [ID1, ID2, ID3, ID4, ID5, ID6, ID7, ID8]

Print At 1, 1, Hex2 ID1, Hex2 ID2, Hex2 ID3, Hex2 ID4, Hex2 ID5, Hex2 ID6, Hex2 ID7

По крайней мере, так работает...

Если Вас интересует, могу скинуть весь демо проект.


THE TRUTH IS OUT THERE.

С уважением, Николай.
Matrix252005 Дата: Вт, 11.12.2012, 18:28  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Скидываю демо-пример работы с несколькими датчиками 18В20. Там проект в проте и исходник...
Не знаю как автоматизировать, так что там все в ручную... Вначале подключаете один датчик, считываете его "ID" и записываете в

OWrite DQ, 1, [$55, $28, $30, $C5, $B8, $00, $00, $00, $8E, $44]

OWrite DQ, 1, [$55, $28, хх, хх, хх, хх, хх, хх, хх, $44] - где хх "ID" 18В20

Надеюсь поможет, если нет, спрашивайте

З.Ы. Если вдруг не поняли, там нужно разремить первые 5 строк и по очереди подключать датчики...
Прикрепления: 18B20.rar(47Kb)


THE TRUTH IS OUT THERE.

С уважением, Николай.
Broka Дата: Чт, 13.12.2012, 19:50  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 252
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Quote (Matrix252005)
Скидываю демо-пример работы с несколькими датчиками 18В20.


Спасибо большое..., как раз нужен был проект,где на один порт цеплялись 4 датчика. Всё хорошо работает...!
Хочу попробовать сделать так, что бы значение IDE датчика автоматически записывалось в ЕЕПРОМ, ну а в программе потом сравнивались эти значения и делались нужные выводы... Вот только пока не знаю как.


Наладчик КИП и А
Matrix252005 Дата: Пт, 14.12.2012, 10:18  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Broka, вот по этому я и написал, что это - демо пример... biggrin
Я тоже хотел так реализовать, но у меня не получилось.... И я решил оставить так...

Так что, удачи!!!! biggrin


THE TRUTH IS OUT THERE.

С уважением, Николай.
xaker-sss Дата: Пн, 24.12.2012, 17:16  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Всем доброго, не стал создавать новую тему, все равно похоже.
Проблема вот в чем, еще в том году собрал термометр с двумя DS18B20 дом улица, и заметил какую-то ерунду, до -20 вроде нормально показывает, хотя точно утверждать не могу, но если ниже -20 то точно врут, в том году со всеми спорил, а сегодня даже жена сказала чтоб я его выкинул, сегодня ночью у всех было -33, и у меня в машине в том числе, а термометр показывал -25,6, датчик весит в метре от земли, сантиметров 30 от каменной стены, в тени, хотя когда смотрел было еще темно.
Может я что с программой начудил, собирал по всем форумам, плохо я в этих расчетах разбираюсь, хотя в протеусе все кажет нормально, если не трудно посмотрите проект.
Прикрепления: 4160414.rar(53Kb)


ПРОТОН ЭТО ВЕЩЬ.
Matrix252005 Дата: Пн, 24.12.2012, 17:28  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Полностью еще не смотрел прогу, но в проте у Вас на второй датчик стоит рез на 10к!!!!! В железе так же??? На сколько я помню, там рез должен быть не больше 4,7к!!!!

Прогу просмотрю сейчас!


THE TRUTH IS OUT THERE.

С уважением, Николай.
xaker-sss Дата: Пн, 24.12.2012, 17:34  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Щас разберу гляну.

Добавлено (24.12.2012, 17:34)
---------------------------------------------
Оба 4,7ком.


ПРОТОН ЭТО ВЕЩЬ.
Matrix252005 Дата: Пн, 24.12.2012, 17:43  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Я пользуюсь немного другой формулой:

Dim R_Temp As Word ' RAW Temperature readings
Dim Cold_Bit As R_Temp.11 ' Sign-Bit for +/- Temp. 1 = Below 0 deg C
Dim Cel As Word
Dim Des As Word
Dim Cel_ot As Word

If Cold_Bit <> 1 Then
Cel = R_Temp / 16
Des = (R_Temp // 16) * 10 / 16
Else
Cel_ot = 65535 - R_Temp
Cel_ot = Cel_ot + 1
Cel = Cel_ot / 16
Des = ((Cel_ot // 16) + 1) * 10 / 16
EndIf


THE TRUTH IS OUT THERE.

С уважением, Николай.

Сообщение отредактировал Matrix252005 - Пн, 24.12.2012, 18:00
xaker-sss Дата: Пн, 24.12.2012, 17:54  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Ничего я в этих знаках не понимаю Cold_Bit <> 1 откуда берется

ПРОТОН ЭТО ВЕЩЬ.
Matrix252005 Дата: Пн, 24.12.2012, 17:59  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Dim Cold_Bit As R_Temp.11

Если 11 бит R_Temp <> 1, значит положительное значение, в противном случае отрицательное...


THE TRUTH IS OUT THERE.

С уважением, Николай.
xaker-sss Дата: Пн, 24.12.2012, 18:18  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

С расчетом вроде разобрался, теперь на дисплей не могу вывести, голова дырявая, пол года с LCD не работал, в чем ошибка.

Добавлено (24.12.2012, 18:18)
---------------------------------------------
Разобрался Dec забыл подставить.

Прикрепления: 6681435.rar(44Kb)


ПРОТОН ЭТО ВЕЩЬ.
Matrix252005 Дата: Пн, 24.12.2012, 18:20  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

xaker-sss, Вы забыли добавить один знак "#" в "Print", а точнее вот так: Print At 1, 1, "D ",Sign, #Cel, ".", #Des

Так же и до второй строки.


THE TRUTH IS OUT THERE.

С уважением, Николай.
xaker-sss Дата: Пн, 24.12.2012, 18:26  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Да работает и так Print At 1, 1, "D ",Sign, #Cel, ".", #Des и так Print At 1, 1, "D ",Sign, Dec Cel, ".", Dec1 Des
Сейчас попробую прошить, только не знаю когда проверю, потепление передают.
Спасибо за помощь, как похолодает отпишусь.


ПРОТОН ЭТО ВЕЩЬ.
Matrix252005 Дата: Пн, 24.12.2012, 18:29  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 676
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Цитата (xaker-sss)
Спасибо за помощь...

Всегда ПЛЗ!!! biggrin

Если что, спрашивайте!!!


THE TRUTH IS OUT THERE.

С уважением, Николай.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Работа с несколькими DS18B20
Страница 1 из 212»
Поиск: