Помогите разобраться с датчиком DS18B20.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
trition007
Открыл глаза
Сообщения: 59
Зарегистрирован: Вс ноя 14, 2010 00:01:52
Контактная информация:

Помогите разобраться с датчиком DS18B20.

Сообщение trition007 »

Исходники программы предоставленны в BASCOM-AVR. Помогите переделать прошивку на 4 датчика , и чтобы все они отображались на одном дисплеии 20*2. и вот что еще когда нарисовал в протесте датчик врет в два раза больше. В архиве протест и сама прошивка на один датчик.

$regfile = "m8def.dat" 'работаем с Атмегой 8
$crystal = 4000000
Config Lcd = 16 * 2 ‘ дисплей 2 строки по 16 символов
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6 ‘ конфигурируем дисплей

Config 1wire = Portd.5 ‘ на эту ножку подключим DS18B20 и подтягивающий резистор на 4,7 ком к + питания


Dim Byte0 As Byte
Dim Byte1 As Byte
Dim Signtemperatura As String * 1
Dim T1 As Byte
Dim T2 As Byte
Dim I As Integer



Do
1wreset
1wwrite &HCC ‘ Выдаем команду чтения ПЗУ
1wwrite &H44 ‘ Запуск измерения

Waitms 750 ‘ Ждем окончания преобразования

1wreset
1wwrite &HCC
1wwrite &HBE ‘ Команда чтения ОЗУ датчика


Byte0 = 1wread() ‘ Читаем нулевой байт

Byte1 = 1wread() ‘ Читаем первый байт

If Byte1 >= 248 Then ‘ Проверяем на отрицательную температуру.248 в десятичном – 11111000 в двоичном. Если температура отрицательная – вычитаем из &HFF

Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1
Signtemperatura = "-"

Else
Signtemperatura = "+"
End If

T1 = Byte0 / 16 ‘ Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
T2 = Byte1 * 16 ‘ Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)

T1 = T1 + T2 ‘ Формирмируем результам и выдаем его на индикатор. Команда LCD сама преобразует его в десятичный вид

Cls
Lcd Signtemperatura ; T1 ; "C"
Wait 2
Loop
End
Вложения
термометр (atmega8).rar
(14.54 КБ) 133 скачивания
Реклама
trition007
Открыл глаза
Сообщения: 59
Зарегистрирован: Вс ноя 14, 2010 00:01:52
Контактная информация:

Re: Помогите разобраться с датчиком DS18B20.

Сообщение trition007 »

Народ, ты где?
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18671
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Помогите разобраться с датчиком DS18B20.

Сообщение ARV »

trition007 писал(а):Народ, ты где?
нет меня
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
trition007
Открыл глаза
Сообщения: 59
Зарегистрирован: Вс ноя 14, 2010 00:01:52
Контактная информация:

Re: Помогите разобраться с датчиком DS18B20.

Сообщение trition007 »

Не кто не знает как изменить прошивку?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
MIF
Друг Кота
Сообщения: 21071
Зарегистрирован: Ср апр 11, 2007 16:50:39
Откуда: Riga

Re: Помогите разобраться с датчиком DS18B20.

Сообщение MIF »

trition007 писал(а):В архиве протест и сама прошивка на один датчик.
А вы пробовали ввести DS18B20 в Поиск? С меткой "Только по названию темы" у меня найдено 4 страницы результатов. Среди них есть тема - Прошивка для МК на DS18B20
Искусство общения было до нас.
Реклама
trition007
Открыл глаза
Сообщения: 59
Зарегистрирован: Вс ноя 14, 2010 00:01:52
Контактная информация:

Re: Помогите разобраться с датчиком DS18B20.

Сообщение trition007 »

Это все не то, мне нужна прошивка на BASCOM-AVR и к индикору LCD Winstar WH2002L . http://www.radiokot.ru/forum/viewtopic. ... 20#p750867 что более мение подходит.
Реклама
Аватара пользователя
Stalker-U
Открыл глаза
Сообщения: 55
Зарегистрирован: Пн окт 11, 2010 20:59:18
Откуда: Краснодар

Re: Помогите разобраться с датчиком DS18B20.

Сообщение Stalker-U »

Доброго времени суток. Вот уже несколько дней мучаюсь с DS18B20 в протеусе. Застрял на считывании температуры. Делаю такую последовательнось:
1-инициализация с получением ответа
2- команда пропуск ROM
3-конвертация температуры с ожиданием ответа об окончании
4-инициализация с получением ответа
5- команда пропуск ROM
6-команда на то, чтоб датчик передавал температуру
7-формирование тайм- слотов для чтение температуры
8- эфект нулевой- выдаёт 85 градусов и всё. Паразитное питание не использую. Пробовал всё повторить два раза- результат тот-же. Скажите пожалуйста как заставить его работать?
Аватара пользователя
Хатуль_мадан
Электрический кот
Сообщения: 1007
Зарегистрирован: Ср мар 03, 2010 11:48:00
Откуда: Уфа

Re: Помогите разобраться с датчиком DS18B20.

Сообщение Хатуль_мадан »

Ну если у Вас выдает 85 градусов (при включении по умолчанию зашито это число), то датчик живой, инициализация и считывание проходят успешно, а вот с передачей команды на запуск преобразования температуры что то не то.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»