Страница 28 из 59
Re: Всё по DS18(B/S)20.
Добавлено: Чт июн 27, 2013 13:42:08
Gudd-Head
shads писал(а):Наверное..... ну вроде в этом не должно возникнуть сложностей
Проще всего, наверное, начать с получения Presense от датчика. Если питание будет активное (а не в паразитном режиме), то за время Reset он наверняка нормально стартанёт. А вот с паразитным питанием... ХЗ.
Re: Всё по DS18(B/S)20.
Добавлено: Чт июн 27, 2013 15:37:45
HHIMERA
shads писал(а):если контроллер будет ногой подавать питание на DS18B20, сколько времени надо ждать после пробуждения контроллера, чтобы DS18B20 пришел в себя, и нормально отрабатывал замер температуры?
Здесь быстрее вопрос к длине/сопротивлению линии и наличию/отсутствию ёмкости по питанию датчика...
При длине в несколько см. и отсутствию ёмкости по питанию можно рулить датчиком сразу...
Re: Всё по DS18(B/S)20.
Добавлено: Сб июн 29, 2013 21:39:40
Yusff
А кто как защищает датчики? Сделал термометр дом/улица. Пару лет назад во время грозы выгорели датчики (они на одной шине, похоже была наводка на кабель выносного), причем порт контроллера выжил. Напаял стабилитроны со стороны МК. Третьего дня опять сильная гроза - сгорел только уличный. Так DS-ок не напасешься.

Re: Всё по DS18(B/S)20.
Добавлено: Сб июн 29, 2013 22:55:59
Сериг
Я питаю через резитор,сталю диод по питанию. Вроде хватает

Re: Всё по DS18(B/S)20.
Добавлено: Вт июл 02, 2013 09:56:38
Amstron
Есть проблема с измерением температуры.
У меня датчик DS18b20. Программа работала замечательно, пока не добавил дополнительное меню в своей программе.
Это меню ни как не связанно с работой датчиков. В это меню программа даже не заходит (надо поставить ловушку проверить).
Дак вот после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Сами датчики программа находит, я их могу перебирать кнопкой: идет отображение количество подключенных датчиков в зависимости от того сколько датчиков подключенно.
Уважаемые Коты, подскажите с чем это может быть связанно?
Re: Всё по DS18(B/S)20.
Добавлено: Вт июл 02, 2013 11:27:37
shads
Amstron писал(а):после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
В протеусе то же самое?
Функция чтения данных с датчика проверяет CRC ?
Если CRC не верна, программа реализует вывод сообщения об ошибке?
Re: Всё по DS18(B/S)20.
Добавлено: Вт июл 02, 2013 11:42:45
Amstron
shads писал(а):Amstron писал(а):после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
В протеусе то же самое?
Функция чтения данных с датчика проверяет CRC ?
Если CRC не верна, программа реализует вывод сообщения об ошибке?
Отлаживаю на железе.
Протеусом не пользуюсь.
Компилятор CV AVR версия 2.05.03
Подскажите как реализовать функцию проверки CRC?
Re: Всё по DS18(B/S)20.
Добавлено: Вт июл 02, 2013 13:11:10
uldemir
Amstron писал(а):Дак вот после того как я сделал это доп. меню, то у меня измеряемая температура всегд отображается как НОЛЬ (0) градусов.
Уважаемые профессора, у меня в подвале слышен подземный стук. Не подскажете, с чем это может быть связано?
Проверять код!
Re: Всё по DS18(B/S)20.
Добавлено: Вт июл 02, 2013 14:25:28
shads
Amstron писал(а):Отлаживаю на железе.
Тогда покупай железный отладчик.....
Amstron писал(а):Протеусом не пользуюсь.
Ну раз не хош освоить полезную программу, тогда тем более покупай железный отладчик.....
Amstron писал(а):Компилятор CV AVR версия 2.05.03
Если хочеш чтобы шустро помогали, переходи на AVRStudio4+GCC
Amstron писал(а):Подскажите как реализовать функцию проверки CRC?
Вот как я задавал этот же вопрос.....
Тут еще от Леонида Ивановича есть рассчет CRC
Re: Всё по DS18(B/S)20.
Добавлено: Вт июл 02, 2013 20:08:13
uldemir
А!!! Правда глаза колет!!! Ну, ну. А что благородный дон ожидал?, что мы подтвердим вашу версию, что датчики плохие и больше трёх меню не выдерживают - выдают сплошные нули. Ай-яй-яй, какие плохие датчики. Дык вот - копать код! Я тоже не апологет симуляторов - всё проверяю в железе. И всё-равно проскакивают ошибки. Был тут аналогичный случай - написал термометр. Код переносился из одного проекта в другой. И тут вдруг обнаружилось что 4-й датчик на шине не читается - выдаёт ошибку CRC. Догадайтесь с трёх раз кто был виноват? Увы, не датчик, а я сам - в одном месте был не внимательным - не переключил страницу памяти. И вылезло это только в одном проекте, где по случайному совпадению, эта не переключенная страница портила накопленный сериальник именно 4-го датчика. Так что - проверять код еще и еще раз. Вставлять контрольные точки.
А CRC как считать написано в
AN27. О, еще
тама есть интересная программка.
Re: Всё по DS18(B/S)20.
Добавлено: Ср июл 03, 2013 04:49:48
Amstron
В моем случае - глючный компилятор.
На версии 1,25,9 температура стала измерятся, но перестала работать другая функция, которая на других версиях отлично работает!
Или с настройками компилятора что то не то?
Re: Всё по DS18(B/S)20.
Добавлено: Ср июл 03, 2013 14:08:05
Biggy
А возможно ли на этой шине реализовать так, чтобы система понимала, что скажем один датчик комнатный, один уличный, а один еще где-нибудь стоит.
Re: Всё по DS18(B/S)20.
Добавлено: Ср июл 03, 2013 20:12:55
shads
Biggy писал(а):А возможно ли на этой шине реализовать так, чтобы система понимала, что скажем один датчик комнатный, один уличный, а один еще где-нибудь стоит.
Я
тут делал так:
Отсоединял линию, подключал датчик №1, программировал его под номером 1, потом подключал датчик №2, программировал его под номером 2, ну и т.д.
Потом когда все датчики запрограммированы, подключаю линию и вешаю все датчики на эту линию..... Теперь у меня известно какой датчик где и под каким номером работает.....
Функцию автоматического поиска как раз не использую по той причине, что потом не понятно кто есть кто из датчиков.....
Re: Всё по DS18(B/S)20.
Добавлено: Чт июл 04, 2013 08:51:05
Gudd-Head
Biggy писал(а):система понимала, что скажем один датчик комнатный, один уличный
Это можно сделать если один датчик будет с паразитным питанием, другой — с "активным".
Re: Всё по DS18(B/S)20.
Добавлено: Чт июл 04, 2013 18:13:19
Amstron
Amstron писал(а):В моем случае - глючный компилятор.
На версии 1,25,9 температура стала измерятся, но перестала работать другая функция, которая на других версиях отлично работает!
Или с настройками компилятора что то не то?
конфигурация3.jpeg
Спасибо что "ответили" (((
Скажите, сложно перейти на другой компилятор , например на
AVRStudio4+GCC ?
Re: Всё по DS18(B/S)20.
Добавлено: Чт июл 04, 2013 18:48:48
borys
То, как делает shads, и есть самый правильный подход.
Re: Всё по DS18(B/S)20.
Добавлено: Чт июл 04, 2013 21:59:23
shads
Amstron писал(а):Скажите, сложно перейти на другой компилятор , например на AVRStudio4+GCC ?
Элементарно.....
Вот ветка где можно задавать все вопросы по
AVRStudio4+GCC
http://radiokot.ru/forum/viewtopic.php? ... start=1460
Re: Всё по DS18(B/S)20.
Добавлено: Пт июл 12, 2013 17:48:05
alexsis_76
Доброго времени суток уважаемые коты, хотелось бы узнать кто как делает сортировку датчиков. пока работает вариант с предварительной записью в eeprom и чтением оттуда, но хотелось бы сделать вариант с чтением действительных номеров с последующим сравнением с eeprom
Re: Всё по DS18(B/S)20.
Добавлено: Вс июл 14, 2013 18:40:53
Amstron
У меня проблема с измерением температуры DS18b20.
Как Вы объясните, что это не глюк компилятора?
Если я в любое место в программе вставляю следующий код, то у меня ответ от датчиков температуры 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;
};
Если я в этом коде исправляю строчку
rejim=31; на rejim=28; то глюка нету.
Хочу заметить еще раз, что этот код я вставляю в места где у мена программа в цикле даже и не заходит туда!
Я уже с этим трахаюсь давно, решил перейти на AVR studio 4.
Есть идея попробовать использовать другую библиотеку , возможно само-писанную.
Поделитесь попробовать... мое мыло
gsm-3@ya.ru
Re: Всё по DS18(B/S)20.
Добавлено: Вс июл 14, 2013 20:56:16
Аlex
Как Вы объясните, что это не глюк компилятора?
А как Вы объясните, что это глюк компилятора, а не Ваш косяк ?
Я, например, не могу ничего объяснить, видя небольшой огрызок программы. Но по нему Ваш уровень сразу виден, который не даёт мне сомневаться в том, что глюк вовсе не компилятора...
программа в цикле даже и не заходит туда!
Зачем он (этот код) тогда вообще нужен, если программа туда не заходит ?