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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Что-то не въезжаю я с DS18S20...
AndrF Дата: Пт, 15.11.2013, 15:32  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 145
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Что-то не въезжаю я с DS18S20... Просьба пояснить, где у меня может быть затык.

Пробую любой из находящихся здесь примеров - DS-ка не хочет работать.

Единственное - нашел в интернете человека у которого была примерно та же проблема - тот код что он привел работает и у меня.

Но это-же ненормально вручную дергать ножку и принимать/отправлять битики.

Почему у меня отказывается работать нормальный код, используемый везде - c использованием OWrite и ORead?

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

Программа на протоне, запускается из-под MPLAB...

Сообщение отредактировал AndrF - Пт, 15.11.2013, 15:34
ЯНДЕКС Дата: 15.11.2013
MiXaS Дата: Пт, 15.11.2013, 16:38  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 549
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Я прошу прощения, что без объяснений, вот код. Точно рабочий. Там еще есть расчет контрольной суммы, но при желании его можно убрать. Коменты вроде есть, будут вопросы задавайте.

Код под DS 18b20, что бы у вас заработало правильно с ds18s20, нужно поменять строку

rew=Temp * 0.0625

на
rew=Temp * 0.5

И все должно работать!

Добавлено (15.11.2013, 16:06)
---------------------------------------------
А опишите симптомы.

Добавлено (15.11.2013, 16:38)
---------------------------------------------
У даласа была партия датчиков, которые не сбрасывались. Сначало могли работать, а через н раз опроса зависали. Это были одни из первых датчиков, назывались ds1820. Потом их трохи допилили и стали называться ds1820+. Я на ebay купил 20 штук DS18B20. Все проверил - отлично работают, оссобенно мне в них нравится это цена одного бита. Я где-то встечал в сети, как бороться с кривыми датчиками.

Прикрепления: 18b20.bas (5.5 Kb)

Сообщение отредактировал MiXaS - Пт, 15.11.2013, 16:02
shaman Дата: Пт, 15.11.2013, 17:12  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

День добрый попробуйте этот код , должен работать. Он для DS18S20

Device 16F877
XTAL 4

Declare LCD_TYPE ALPHA
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.2
Declare LCD_ENPIN PORTB.3
Declare LCD_LINES 2
Declare LCD_INTERFACE 4

PORTB_PULLUPS = true
ALL_DIGITAL = TRUE

SYMBOL DQ = Portb.0

Dim Sign as Byte
Dim Cnt as Byte
Dim Count_Per_Deg as Byte
Dim Temp as Word
Dim Temp_Dec as Byte

Delayms 150
Cls
Print $FE,$40,$06,$09,$09,$06,$00,$00,$00,$00

Again:
OWRITE DQ, 1,[$55,$10,$31,$C5,$C8,$00,$00,$00,$F4,$44]

REPEAT
DELAYMS 25
OREAD DQ,4,
[Cnt]UNTIL Cnt <> 0

OWRITE DQ,1,[$55,$10,$31,$C5,$C8,$00,$00,$00,$F4,$BE]
OREAD DQ,2,[Temp.LOWBYTE,Temp.HIGHBYTE,Cnt,Cnt,Cnt,Cnt,Cnt,Count_Per_Deg]

Temp_Dec = (6.25 * Cnt)
If Temp.8=1 Then
Temp=(Temp.LowByte ^ $FF) >> 1
If Cnt = 0 then Temp = Temp + 1
Sign = "-"

Else

Temp=(Temp >> 1)
Sign = "+"
Temp_Dec = 100 - Temp_Dec
Endif

Print At 1,1, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, 0,"C "

Goto Again
Прикрепления: 2895103.gif (68.7 Kb)

Сообщение отредактировал shaman - Пт, 15.11.2013, 17:16
anatol Дата: Пт, 15.11.2013, 17:24  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

AndrF, а у меня почему-то ноги в туфли не лезут. Вот когда одеваю соседние, то лезут вот их фото....
Где ваша прога, а конкретно тип ПИКа, частота кварца. Строки работы с температурным сенсором.
Это надо чтобы понять как часто вы опрашиваете сенсор и параметры импульсов опроса.
MiXaS Дата: Пт, 15.11.2013, 17:40  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 549
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Цитата anatol ()
Вот когда одеваю соседние, то лезут вот их фото....

smile
ADMIN Дата: Пт, 15.11.2013, 19:29  |                                                                                                                Сообщение # 6
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Я бы схему глянул для начала
AndrF Дата: Пт, 15.11.2013, 22:17  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 145
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Все - разобрался. Ошибка у меня была во втором параметре ORead/OWrite...
  • Страница 1 из 1
  • 1
Поиск: