Проще всего, наверное, начать с получения Presense от датчика. Если питание будет активное (а не в паразитном режиме), то за время Reset он наверняка нормально стартанёт. А вот с паразитным питанием... ХЗ.shads писал(а):Наверное..... ну вроде в этом не должно возникнуть сложностей
Всё по DS18(B/S)20.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS18(B/S)20.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
Re: Всё по DS18(B/S)20.
Здесь быстрее вопрос к длине/сопротивлению линии и наличию/отсутствию ёмкости по питанию датчика...shads писал(а):если контроллер будет ногой подавать питание на DS18B20, сколько времени надо ждать после пробуждения контроллера, чтобы DS18B20 пришел в себя, и нормально отрабатывал замер температуры?
При длине в несколько см. и отсутствию ёмкости по питанию можно рулить датчиком сразу...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: Всё по DS18(B/S)20.
А кто как защищает датчики? Сделал термометр дом/улица. Пару лет назад во время грозы выгорели датчики (они на одной шине, похоже была наводка на кабель выносного), причем порт контроллера выжил. Напаял стабилитроны со стороны МК. Третьего дня опять сильная гроза - сгорел только уличный. Так DS-ок не напасешься. 
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: Всё по DS18(B/S)20.
Я питаю через резитор,сталю диод по питанию. Вроде хватает 
Re: Всё по DS18(B/S)20.
Есть проблема с измерением температуры.
У меня датчик DS18b20. Программа работала замечательно, пока не добавил дополнительное меню в своей программе.
Это меню ни как не связанно с работой датчиков. В это меню программа даже не заходит (надо поставить ловушку проверить).
Дак вот после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Сами датчики программа находит, я их могу перебирать кнопкой: идет отображение количество подключенных датчиков в зависимости от того сколько датчиков подключенно.
Уважаемые Коты, подскажите с чем это может быть связанно?
У меня датчик DS18b20. Программа работала замечательно, пока не добавил дополнительное меню в своей программе.
Это меню ни как не связанно с работой датчиков. В это меню программа даже не заходит (надо поставить ловушку проверить).
Дак вот после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Сами датчики программа находит, я их могу перебирать кнопкой: идет отображение количество подключенных датчиков в зависимости от того сколько датчиков подключенно.
Уважаемые Коты, подскажите с чем это может быть связанно?
- Реклама
Re: Всё по DS18(B/S)20.
В протеусе то же самое?Amstron писал(а):после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Функция чтения данных с датчика проверяет CRC ?
Если CRC не верна, программа реализует вывод сообщения об ошибке?
Re: Всё по DS18(B/S)20.
Отлаживаю на железе.shads писал(а):В протеусе то же самое?Amstron писал(а):после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Функция чтения данных с датчика проверяет CRC ?
Если CRC не верна, программа реализует вывод сообщения об ошибке?
Протеусом не пользуюсь.
Компилятор CV AVR версия 2.05.03
Подскажите как реализовать функцию проверки CRC?
Re: Всё по DS18(B/S)20.
Уважаемые профессора, у меня в подвале слышен подземный стук. Не подскажете, с чем это может быть связано?Amstron писал(а):Дак вот после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Проверять код!
Re: Всё по DS18(B/S)20.
Тогда покупай железный отладчик.....Amstron писал(а):Отлаживаю на железе.
Ну раз не хош освоить полезную программу, тогда тем более покупай железный отладчик.....Amstron писал(а):Протеусом не пользуюсь.
Если хочеш чтобы шустро помогали, переходи на AVRStudio4+GCCAmstron писал(а):Компилятор CV AVR версия 2.05.03
Вот как я задавал этот же вопрос.....Amstron писал(а):Подскажите как реализовать функцию проверки CRC?
Тут еще от Леонида Ивановича есть рассчет CRC
Re: Всё по DS18(B/S)20.
А!!! Правда глаза колет!!! Ну, ну. А что благородный дон ожидал?, что мы подтвердим вашу версию, что датчики плохие и больше трёх меню не выдерживают - выдают сплошные нули. Ай-яй-яй, какие плохие датчики. Дык вот - копать код! Я тоже не апологет симуляторов - всё проверяю в железе. И всё-равно проскакивают ошибки. Был тут аналогичный случай - написал термометр. Код переносился из одного проекта в другой. И тут вдруг обнаружилось что 4-й датчик на шине не читается - выдаёт ошибку CRC. Догадайтесь с трёх раз кто был виноват? Увы, не датчик, а я сам - в одном месте был не внимательным - не переключил страницу памяти. И вылезло это только в одном проекте, где по случайному совпадению, эта не переключенная страница портила накопленный сериальник именно 4-го датчика. Так что - проверять код еще и еще раз. Вставлять контрольные точки.
А CRC как считать написано в AN27. О, еще тама есть интересная программка.
А CRC как считать написано в AN27. О, еще тама есть интересная программка.
Re: Всё по DS18(B/S)20.
В моем случае - глючный компилятор.
На версии 1,25,9 температура стала измерятся, но перестала работать другая функция, которая на других версиях отлично работает!
Или с настройками компилятора что то не то?
На версии 1,25,9 температура стала измерятся, но перестала работать другая функция, которая на других версиях отлично работает!
Или с настройками компилятора что то не то?
-
Biggy
- Открыл глаза
- Сообщения: 71
- Зарегистрирован: Вт дек 09, 2008 20:54:30
- Откуда: Златоуст
- Контактная информация:
Re: Всё по DS18(B/S)20.
А возможно ли на этой шине реализовать так, чтобы система понимала, что скажем один датчик комнатный, один уличный, а один еще где-нибудь стоит.

Re: Всё по DS18(B/S)20.
Я тут делал так:Biggy писал(а):А возможно ли на этой шине реализовать так, чтобы система понимала, что скажем один датчик комнатный, один уличный, а один еще где-нибудь стоит.
Отсоединял линию, подключал датчик №1, программировал его под номером 1, потом подключал датчик №2, программировал его под номером 2, ну и т.д.
Потом когда все датчики запрограммированы, подключаю линию и вешаю все датчики на эту линию..... Теперь у меня известно какой датчик где и под каким номером работает.....
Функцию автоматического поиска как раз не использую по той причине, что потом не понятно кто есть кто из датчиков.....
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS18(B/S)20.
Это можно сделать если один датчик будет с паразитным питанием, другой — с "активным".Biggy писал(а):система понимала, что скажем один датчик комнатный, один уличный
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Всё по DS18(B/S)20.
Спасибо что "ответили" (((Amstron писал(а):В моем случае - глючный компилятор.
На версии 1,25,9 температура стала измерятся, но перестала работать другая функция, которая на других версиях отлично работает!
Или с настройками компилятора что то не то?
Скажите, сложно перейти на другой компилятор , например на AVRStudio4+GCC ?
-
borys
- Держит паяльник хвостом
- Сообщения: 927
- Зарегистрирован: Вт сен 07, 2010 19:27:48
- Откуда: Ташкент
Re: Всё по DS18(B/S)20.
То, как делает shads, и есть самый правильный подход.
Re: Всё по DS18(B/S)20.
Элементарно.....Amstron писал(а):Скажите, сложно перейти на другой компилятор , например на AVRStudio4+GCC ?
Вот ветка где можно задавать все вопросы по AVRStudio4+GCC
http://radiokot.ru/forum/viewtopic.php? ... start=1460
-
alexsis_76
- Открыл глаза
- Сообщения: 46
- Зарегистрирован: Ср апр 29, 2009 04:11:48
Re: Всё по DS18(B/S)20.
Доброго времени суток уважаемые коты, хотелось бы узнать кто как делает сортировку датчиков. пока работает вариант с предварительной записью в eeprom и чтением оттуда, но хотелось бы сделать вариант с чтением действительных номеров с последующим сравнением с eeprom
Re: Всё по DS18(B/S)20.
У меня проблема с измерением температуры DS18b20.
Как Вы объясните, что это не глюк компилятора?
Если я в любое место в программе вставляю следующий код, то у меня ответ от датчиков температуры DS18b20 всегда НОЛЬ градусов.
{
bukva_0 = 5; // S
bukva_1 = 10; // выкл
bukva_2 = 0; // 0
bukva_3 = 22; // n
};
if (stabilizator_GAZ == 0)
{
bukva_0 = 5; // S
bukva_1 = 0; // 0
bukva_2 = 23; // F
bukva_3 = 23; // F
};
if (knopka2==2)
{ while (knopka2==2){ } ;
stabilizator_GAZ = 1;
};
if (knopka3==3)
{ while (knopka3==3){ } ;
stabilizator_GAZ = 0;
};
if (knopka1==1)
{ while (knopka1==1){ } ;
vukluchit_bukvu();
rejim=31;
xg = 5;
};
Если я в этом коде исправляю строчку rejim=31; на rejim=28; то глюка нету.
Хочу заметить еще раз, что этот код я вставляю в места где у мена программа в цикле даже и не заходит туда!
Я уже с этим трахаюсь давно, решил перейти на AVR studio 4.
Есть идея попробовать использовать другую библиотеку , возможно само-писанную.
Поделитесь попробовать... мое мыло gsm-3@ya.ru
Как Вы объясните, что это не глюк компилятора?
Если я в любое место в программе вставляю следующий код, то у меня ответ от датчиков температуры DS18b20 всегда НОЛЬ градусов.
Спойлер
if (stabilizator_GAZ == 1){
bukva_0 = 5; // S
bukva_1 = 10; // выкл
bukva_2 = 0; // 0
bukva_3 = 22; // n
};
if (stabilizator_GAZ == 0)
{
bukva_0 = 5; // S
bukva_1 = 0; // 0
bukva_2 = 23; // F
bukva_3 = 23; // F
};
if (knopka2==2)
{ while (knopka2==2){ } ;
stabilizator_GAZ = 1;
};
if (knopka3==3)
{ while (knopka3==3){ } ;
stabilizator_GAZ = 0;
};
if (knopka1==1)
{ while (knopka1==1){ } ;
vukluchit_bukvu();
rejim=31;
xg = 5;
};
Хочу заметить еще раз, что этот код я вставляю в места где у мена программа в цикле даже и не заходит туда!
Я уже с этим трахаюсь давно, решил перейти на AVR studio 4.
Есть идея попробовать использовать другую библиотеку , возможно само-писанную.
Поделитесь попробовать... мое мыло gsm-3@ya.ru
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Всё по DS18(B/S)20.
А как Вы объясните, что это глюк компилятора, а не Ваш косяк ?Как Вы объясните, что это не глюк компилятора?
Я, например, не могу ничего объяснить, видя небольшой огрызок программы. Но по нему Ваш уровень сразу виден, который не даёт мне сомневаться в том, что глюк вовсе не компилятора...
Зачем он (этот код) тогда вообще нужен, если программа туда не заходит ?программа в цикле даже и не заходит туда!


