Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Глючит датчик DS18B20

Форум самогонщиков Вопросы по электр(он)ике
1 2 3 4 5 6 5
cv11 Новичок СССР 4
Отв.80  18 Мая 22, 22:23
Провод датчика обмотал алюминиевым скотчем, не помогло. Автоматику брал давно у ZSerje.
Z_h_e Доцент г. Чайковский 1.1K 318
Отв.81  18 Мая 22, 22:24 (через 2 мин)
Надо еще соединить экран с общим выводом автоматики.
cv11 Новичок СССР 4
Отв.82  18 Мая 22, 22:31 (через 7 мин)
Скотч касается корпуса котла, если соединить с общим выводом ничего не сгорит?
Z_h_e Доцент г. Чайковский 1.1K 318
Отв.83  18 Мая 22, 22:34 (через 4 мин)
Экран должен быть соединен с общим выводом автоматики, т.е. с одной стороны.
cv11 Новичок СССР 4
Отв.84  18 Мая 22, 22:37 (через 3 мин)
Спасибо! Взял еще оплетку с кабеля для кабельного телевидения надел её сверху алюминиевого скотча, затем соединил с экраном кабеля датчика, а потом термоусадкой все изолировал чтоб до корпуса не касалось и все заработало. Видимо наводка от двигателя или пускателя какая то была.
Power01 Новичок Кинешма 1
Отв.85  12 Марта 23, 09:38
Доброго времени. Помогите, виснет датчик температуры на царге, после перезапуска ардуинки полностью начинает работать некоторое время и опять виснет. На аппарате стоит 3 датчика китайских в гильзе с проводами, соединены звездой, с резистором в центре. Датчик куба сухой, в гильзе 50см погружен в куб (до 100°С), аварийный тоже просто примотан на ТСА (до 40°С) - они работают нормально, а вот датчик колонны (до 90°С) глючит. Он тоже сухой, просто прижимается к колонне. Длина провода до каждого датчика от точки соединения 1м, плюс 0.5 до ардуинки. Уже в голову лезут мысли купить оригинал за 280 руб в чипе, утверждают, типа что гарантированно оригинальный датчик...
Теперь вопросы:
1. Как переживет ардуинка и датчики горячее выключение и включение питания датчиков по плюсу и минусу? Есть идея поставить выключатель для перезапуска.
2. С чего начать попытки реанимации существующих датчиков что бы обойтись без выключателей?
SGUN Профессор Воронеж 19.4K 6.7K 2
Отв.86  12 Марта 23, 09:43 (через 5 мин)
Power01, замени датчик
он копейки стоит
зачем колхоз разводить
дски дохнут периодически
купи на али десяток и бабушку не лохмать
cctv24 Бакалавр Москва 89 4
Отв.87  11 Сент. 23, 22:45
Помогите, виснет датчик температуры на царге,Power01, 12 Марта 23, 09:38
Если в автоматике управление мощностью через симистор, то это помехи от него.
Мы в автоматике даже сделали диагностику непреднамеренных помех, чтобы сразу реагировать на их появление в протоколе обмена датчикоа с автоматикой.

Добавлено через 6мин.:

дски дохнут периодическиSGUN, 12 Марта 23, 09:43
Причина наводки на датчик. Убирайте их или защищайтесь и будет вам счастье.
gvsp Кандидат наук Ленинград 378 43
Отв.88  27 Апр. 26, 10:01
Поднимаю некротему. Тестировал свою электронику на Ардуино. Намучался с тем, что DS18B20 не всегда отвечают. Заменю оба датчика, увеличу в программе количество попыток получения ответа. Обмотать фольгой кабели к датчикам и соединить с минусом? Найти где-то ферритовое кольцо и сделать кабелем с датчиков виток вокруг него? А может экранировать кабель от РМ до ТЭНа, но без заземления смысла нет. С заземлением проблема,розетка не заземлена, хлопотно, но можно намутить. Соединить колонну с минусом питания электроники управления?
dee Научный сотрудник Минск 11.7K 2.7K
Отв.89  27 Апр. 26, 10:14 (через 13 мин)
Обмотать фольгой кабели к датчикам и соединить с минусом?gvsp, 27 Апр. 26, 10:01
фольгинированная и/или экранированная витая пара ethernet в помощь, STP FTP или SFTP. Экран на землю только с одной стороны контроллера но может помочь и без заземления. Попробуй считать инфу с датчиков напрямую, без библиотеки и контрольной суммы, можно посковырять бибилотеку и в случае ошибки в контрольной сумме выводить инфу в порт или на экран. У ДСок само преобразование занимает много времени, чуть меньше секунды, а дергать значение можно сколь угодно часто, так что без библиотеки можно быстро переспросить.

Добавлено через 7мин.:

вот из моей ранней наскальной живописи

//для датчика температуры
#include <OneWire.h>;
#define ONE_WIRE_BUS 12; // номер пина на котором будет датчик температуры
OneWire oneWire(12); // включает интерфес на ножке
OneWire ds(12);

// чтение температуры , можно сделать раз в секунду
if (millis() >= time_term) { // переменная для хранения времени датчиков температуры
ds.reset(); //сбросить линию
ds.select(Thermometer1); //обратиться к датчику 1
ds.write(0xBE); // запустить чтение температуры из датчика
data[0] = ds.read();
data[1] = ds.read();
data[2] = ds.read();
data[3] = ds.read();
data[4] = ds.read();
data[5] = ds.read();
data[6] = ds.read();
data[7] = ds.read();
data[8] = ds.read();
temperatyra_kuba = data[1]; //два байта складываются в одно число плюс поправка по температуре кипения воды
temperatyra_kuba *= 256; //
temperatyra_kuba += data[0]; //
temperatyra_kuba *= 100; //
temperatyra_kuba /= 16; //
temperatyra_kuba -= 11; // поправка на лед -11
temperatyra_kuba *= 10456; // коэффициент на кипящую воду
temperatyra_kuba /= 10000; // вернуть обратно, не перескачить лонг 9985 * 100000 = 998 500 000 < 2 147 483 647
ds.reset(); //сбросить линию
ds.select(Thermometer1); //обратиться к датчику 1
ds.write(0x44); // запустить преобразование температуры в датчике

ds.reset(); //сбросить линию
ds.select(Thermometer2); //обратиться к датчику 2
ds.write(0xBE); // запустить чтение температуры из датчика
data[0] = ds.read();
data[1] = ds.read();
data[2] = ds.read();
data[3] = ds.read();
data[4] = ds.read();
data[5] = ds.read();
data[6] = ds.read();
data[7] = ds.read();
data[8] = ds.read();
temperatyra_deflegmatora = ((data[1] << Крутой + data[0]) * 10 / 16; // два байта складываются в одно число
ds.reset(); //сбросить линию
ds.select(Thermometer2); //обратиться к датчику 2
ds.write(0x44); // запустить преобразование температуры в датчике
time_term += 1000;

//заодно и экран перерисовать на случай артефакто после замены спринтф на стринг
lcd.clear();
lcd.setCursor(0, 1);
lcd.print(lcd_text2);
lcd.setCursor(0, 0);
lcd.print(lcd_text1);
}

Добавлено через 2мин.:

и вот еще кусок кода для работы с ДС-ками напрямую, в те времена у меня библиотека отказывалась их переводить в 12-битный режим измерения (0,0625 градуса)

/*
//код переводит датчик в 12 битный режим, срабатывает только с одним датчиком на линии,
ds.write(0xCC); // Для обращения ко всем 1-Wire устройствам, подключенным к шине, используется команда skip rom. Например, эту команду можно применять, чтобы запустить температурное преобразование сразу всех датчиков DS18B20
ds.write(0x4E); // записывать в ОЗУ датчика DS18B20 три байта – Th, Tl и конфигурационный регистр (2, 3, 4 байты ОЗУ соответственно).
ds.write(0x4B); // то, что прочиталось по адресу data[2] в процессе чтения for ( i = 0; i < 9; i++) { data = ds.read();}
ds.write(0x46); // то, что показало по адресу data[3] по идее это верхняя и нижняя границы измерений
ds.write(0x7F); // конфигурационный байт, по дефолту 000111111, становиться 01111111. две первые еденицы отвечают за разрядность ацп
ds.write(0xCC); // сбрасывается память
ds.write(0x48); // Эта команда копирует 2, 3 и 4 байты ОЗУ (Tl, Th и конфигурационный регистр соответственно) в EEPROM датчика.
*/
gvsp Кандидат наук Ленинград 378 43
Отв.90  27 Апр. 26, 11:39
У ДСок само преобразование занимает много времени, чуть меньше секунды, а дергать значение можно сколь угодно частоdee, 27 Апр. 26, 10:14
Хлопотно в этом разбираться, я уж с библиотекой. У меня было в случае отсутствия ответа ещё две попытки с разницей в две секунды получить ответ. Сейчас перепишу на 500 попыток чтения паузой 2 мс. Я не жду вычислений датчика, считываю данные от предыдущего запроса. Раз в две секунды запрос. Кстати по умолчанию датчики в 12 битном режиме. У меня их два на линии - бак и колонна. Витая пара хорошо (наверное), но до самого датчика то я её не дотяну. Можно наверное из гильзы датчик вытащить и дотянуть прям до гильзы витой парой, но хлопотно. Обмотаю фольгой или алюминиевым скотчем. Принципиально где экран подключать к минусу? Мне проще всего там, где у меня разъём и кабель от электроники разветвляется на два датчика. Да, с учётом того, что гильза в датчике колонны контактирует с СПН, то на гильзе всё что на корпусе колонны. Если дотяну экран до гильзы, то минус электроники будет соединён с незаземлённой колонной.
dee Научный сотрудник Минск 11.7K 2.7K
Отв.91  27 Апр. 26, 11:57 (через 18 мин)
У меня было в случае отсутствия ответа ещё две попытки с разницей в две секунды получить ответ.gvsp, 27 Апр. 26, 11:39
потому что библиотека одной командой читает данные и запускает следующее преобразование температуры, на самом деле это разные команды, считать новое данные раньше чем через секунду после начала преобразования нельзя, предыдущее значение в случе не совпадения CRC она сбрасывает, а в ручном режиме запросить результаты предыдущего преобразования в случае помехи на линии - можно, убедиться что контрольная сумма совпадает и только тогда запустить следующее преобразование. Может сейчас и толковые библиотеки есть, я давно не интересовался.

Добавлено через 1мин.:

но до самого датчика то я её не дотяну.gvsp, 27 Апр. 26, 11:39
ну сколько дотянешь, там где датчик уже гильза начинается, она тоже экранирует, чем не обматаешь - всё лучше чем голая лапша, витая пара офигительный и главное дешевый провод, по ней ВЧ сигнал в гигагерцы ходит, без помех и на сотни метров
Newocelot Профессор Питер 11.7K 3.1K 2
Отв.92  27 Апр. 26, 14:25
ВЧ сигнал в гигагерцы ходит, без помех и на сотни метровdee, 27 Апр. 26, 11:57
офигительный и главное дешевый проводdee, 27 Апр. 26, 11:57
Это где такие чудесные "офигительные и дешёвые" провода дают ?
Прекращай пургу нести во всех темах !
dee Научный сотрудник Минск 11.7K 2.7K
Отв.93  27 Апр. 26, 14:43 (через 18 мин)
Это где такие чудесные "офигительные и дешёвые" провода дают ?Newocelot, 27 Апр. 26, 14:25
просвящайся
Скорость передачи данных по витой паре зависит от ее категории и составляет от 100 Мбит/с (Cat5) до 10–40 Гбит/с (Cat6a/7)
https://www.google.com/search?q=ftp+cat7+купить
лично у меня витой пары еще с 2000х годов валяется, когда домовые сети таскал

Добавлено через 0мин.:

Прекращай пургу нести во всех темах !Newocelot, 27 Апр. 26, 14:25
тебя спросил забыть
SGUN Профессор Воронеж 19.4K 6.7K 2
Отв.94  27 Апр. 26, 14:52 (через 9 мин)
мож датчик тупо заменить
сообщение удалено
gvsp Кандидат наук Ленинград 378 43
Отв.95  27 Апр. 26, 16:27
мож датчик тупо заменитьSGUN, 27 Апр. 26, 14:52
Датчики заменю. Но так, как один раз смог повторить проблему на снятых датчиках, а другой раз не смог, то подозреваю что проблема может возникать только при установке на место и работе ТЭНа. тем более почитал, как раз в этой теме, что проблема помех имеет место быть. Сейчас переписываю программу, чтобы уходить в ошибку не после трёх невозможностей считать подряд, а после пятиста. Ну и показывать какой датчиик не отвечает, а то у меня просто была строка "НЕТ ОТВЕТА ТЕМП.", и при этой ошибки показания не менялись и какой датчик глючит не знал.Сейчас сразу будет показывать "??" вместо температуры если датчик не отвечает и будет пытаться таки получить данные.
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.96  27 Апр. 26, 17:09 (через 43 мин)
Я тупо вынес симистор на 1,5 м вместе с его моськой под диван. И перешёл на брезен. И забыл , как кошмарный сон всё эти заземления и зануления и в одной точке и поиске еë. Построителем ленточных магнитофонов привет. А потом ваще....
Z_h_e Доцент г. Чайковский 1.1K 318
Отв.97  27 Апр. 26, 17:17 (через 8 мин)
@gvsp могу посоветовать, коли сам прошивку делаешь, не производить обмен данными с датчиком в момент открытия симистора, если возможна такая синхронизация. Правда я сам наоборот сделал, когда идет пачка обмена, пропускаю одно включение симистора. Просто мне так проще. У меня реализован опрос данных от DS через UART и прямой доступ к памяти МК, не стал его трогать.

Еще я ставил вот такой Т фильтр на линию DQ со стороны автоматики. Я не нашел свои записи, но вроде правильно номиналы помню, очень хорошо себя зарекомендовал в плане отсечки помех, но что-то мне мешает его использовать Улыбающийся. Ну может не 1 Ом, а 2 ставил. Емкость может меньше, но память говорит как я нарисовал.
Тфильтр.png
Тфильтр. Глючит датчик DS18B20. Вопросы по электр(он)ике.
dee Научный сотрудник Минск 11.7K 2.7K
Отв.98  27 Апр. 26, 17:20 (через 3 мин)
Разные вещи!
читаю искин:
Для стандарта 40GBASE-T Ethernet (передача 40 Гбит/с по медной витой паре) частота сигнала составляет до 2000 МГц (2 ГГц).
Основные характеристики:
Тип кабеля: Категория 8 (Cat8).
Частота: 2000 МГц (2 ГГц).

я 100 мбит прокидывал через бухту (300м) П-296 но это не тот провод, на который стоит вешать датчики температуры а FTP есть почти везде

Добавлено через 1мин.:

чтобы уходить в ошибку не после трёх невозможностей считать подряд, а после пятиста.gvsp, 27 Апр. 26, 16:27
это 10 минут с отвалившимся датчиком? я бы все же сделал ручное чтение инфы (собсна давно сделал), потом проверку на сумму и только потом оправку команды на следующее преобразование температуры.

Добавлено через 6мин.:

есть другие либы, например ds18b20-simple-library с готовыми функциями
ds18b20_get_result
ds18b20_calc_crc8
ds18b20_parse_result
ds18b20_measure
т.е всё правильно делает: читает в буфер, проверят сумму, преобразует данные и потом запускает новое преобразование.
gvsp Кандидат наук Ленинград 378 43
Отв.99  27 Апр. 26, 17:48 (через 29 мин)
коли сам прошивку делаешьZ_h_e, 27 Апр. 26, 17:17
В качестве РМ выступает заводской РМ2. Я в своей автоматике только два реле для него поставил для включения/выключения и для переключения разгон/отбор.

Добавлено через 2мин.:

Я тупо вынес симистор на 1,5 м вместе с его моськой под диван.Виктрыч, 27 Апр. 26, 17:09
Помеха то не от самого симистора, а от всего что к нему подключена до самого ТЭНа. А ТЭН плод диван не спрячешь.

Добавлено через 8мин.:

это 10 минут с отвалившимся датчиком? я бы все же сделал ручное чтение инфы (собсна давно сделал), потом проверку на сумму и только потом оправку команды на следующее преобразование температуры.dee, 27 Апр. 26, 17:20
Рассчитанная информация в датчике уже сидит. Проблема её получить. Поэтому 255 требований к датчику выдать мне эту чёртову температуру с задержками 2 мс. Если за это время не выдал ничего адекватного, то запрос на расчёт температуры, пауза 750 мс на вычисления датчиком и ещё 255 попыток выбить из него адекватные данные. При самых неблагоприятных обстоятельствах меньше 2 секунд на всё. Ну, а если уж за 500 попыток так и не выдал, то Стоп по аварии. У меня было 3 проверки. В среднем через несколько минут этого мне не хватало. А уж 500 точно хватит. Ну и поиграюсь с экранированием хотя бы кабеля.