Провод датчика обмотал алюминиевым скотчем, не помогло. Автоматику брал давно у 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 ставил. Емкость может меньше, но память говорит как я нарисовал. Тфильтр. Глючит датчик 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 точно хватит. Ну и поиграюсь с экранированием хотя бы кабеля.