Форум РадиоКот • Просмотр темы - выбор провода под датчик температуры
Сообщения без ответов | Активные темы
Страница 2 из 2
[ Сообщений: 32 ]
,
Автор
Сообщение
АлександрЛ
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Ср июн 29, 2022 12:56:48
Друг Кота
Карма: 187
Рейтинг сообщений: 8260
Зарегистрирован: Пн ноя 30, 2009 03:00:01Сообщений: 39597Откуда: Нерезиновая
Рейтинг сообщения: 0
АлександрЛ , а мост нужно делать на стороне датчика если для него нужно 4 провода ?
Спойлер на два активных датчика не понятно как работать с двумя ацп
Я бы это сделал вот так:
Спойлер Вообще- (имхо) 10 кОм много, лучше бы 1 кОм, один из датчиков можно заменить подстроечным резистором, типа "установка нуля"
А резистор R5 "калибровка" - регулировка коэффициента усиления..
В каких пределах у вас изменяется температура? У ММТ и им подобных- какая-то дикая нелинейность.. (имхо) DS18B20 будет намного проще, дешевле и точнее, единственно, я не знаю, как он будет работать на 9-ти метровый кабель..
Вернуться наверх
Реклама
VNS
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Ср июн 29, 2022 15:18:19
Это не хвост, это антенна
Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46Сообщений: 1326Откуда: Тюмень
Рейтинг сообщения: 0
как он будет работать на 9-ти метровый кабель
Работает хорошо, если всё правильно сделано для защиты от помех (может работать и на более дальние расстояния).
Вернуться наверх
Реклама
АлександрЛ
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Ср июн 29, 2022 15:52:22
Друг Кота
Карма: 187
Рейтинг сообщений: 8260
Зарегистрирован: Пн ноя 30, 2009 03:00:01Сообщений: 39597Откуда: Нерезиновая
Рейтинг сообщения: 0
Если DS18B20 подключить экранированным двухжильным (хорошим) кабелем КММ 2х0,12-
Вложение:
Или нужно трёхжильный кабель с экраном?
Вернуться наверх
Реклама
VNS
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Ср июн 29, 2022 17:31:51
Это не хвост, это антенна
Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46Сообщений: 1326Откуда: Тюмень
Рейтинг сообщения: 0
Не делал эксперименты с паразитным питанием… так как к данному способу отношусь с недоверием и считаю его ненадёжным… для малых расстояний использовать ещё можно, но экономить на жиле не считаю практичным… по этой причине трёхжильный с экраном предпочтительнее и надёжнее. Вполне можно обойтись и без экрана (на такое расстояние) при использовании витой пары (в варианте 4 пары).
Вернуться наверх
Реклама
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Подробнее>>
>TEHb<
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Чт июн 30, 2022 14:31:12
Друг Кота
Карма: 13
Рейтинг сообщений: 359
Зарегистрирован: Ср ноя 11, 2009 17:19:30Сообщений: 4306Откуда: Воронеж
Рейтинг сообщения: 0
Витая пара достаточно будет. На вход конденсатор запаяй и норм
Совершенно согласен. Никаких подстроечников и мостов не нужно, всё делается программно. В том числе и фильтр, кстати.
_________________ "Привет!" - соврал он.
Вернуться наверх
Реклама
Реклама
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Подробнее>>
lecetim442
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Пт июл 01, 2022 11:52:08
Зарегистрирован: Вт июн 28, 2022 12:31:18Сообщений: 29
Рейтинг сообщения: 0
из 8 свободных пинов на есп32 работают только 4 с дс18б20 можно ли применить какойнить расширитель под них ? там же не аналоговый сигнал вроде и CD74HC4067 не прокатит вродеДобавлено after 3 minutes 28 seconds: да и не цыфровой с MCP23017 не заработали
Вернуться наверх
Реклама
>TEHb<
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Пт июл 01, 2022 11:52:38
Друг Кота
Карма: 13
Рейтинг сообщений: 359
Зарегистрирован: Ср ноя 11, 2009 17:19:30Сообщений: 4306Откуда: Воронеж
Рейтинг сообщения: 0
На одну ногу можно повесить целую гирлянду датчиков.
_________________ "Привет!" - соврал он.
Вернуться наверх
Реклама
lecetim442
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Пт июл 01, 2022 11:56:01
Зарегистрирован: Вт июн 28, 2022 12:31:18Сообщений: 29
Рейтинг сообщения: 0
у меня автоопределение адреса датчика и гирлянда тут не прокатит с этим
Вернуться наверх
Реклама
>TEHb<
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Пт июл 01, 2022 11:58:09
Друг Кота
Карма: 13
Рейтинг сообщений: 359
Зарегистрирован: Ср ноя 11, 2009 17:19:30Сообщений: 4306Откуда: Воронеж
Рейтинг сообщения: 0
Ну и пускай автоопределяет. Останется только запомнить в процессор где с каким номером висит датчик и дело в шляпе.
_________________ "Привет!" - соврал он.
Вернуться наверх
Реклама
lecetim442
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Пт июл 01, 2022 12:20:28
Зарегистрирован: Вт июн 28, 2022 12:31:18Сообщений: 29
Рейтинг сообщения: 0
что то ерунда получается
в уарт выводит два значения но они одинаковые и намного ниже чем в действительности
подключил так
Спойлер Код:
#include <OneWire.h> bool EN_82749380_1; unsigned long period_82749380_1; float temp_82749380_1; bool error_82749380_1; OneWire ds_82749380_1(3); byte data_82749380_1[9]; byte count_82749380_1; bool brake_82749380_1; bool crcOK_82749380_1; unsigned long time_82749380_1; unsigned long time_old_82749380_1; bool EN_82749380_2; unsigned long period_82749380_2; float temp_82749380_2; bool error_82749380_2; OneWire ds_82749380_2(3); byte data_82749380_2[9]; byte count_82749380_2; bool brake_82749380_2; bool crcOK_82749380_2; unsigned long time_82749380_2; unsigned long time_old_82749380_2; unsigned long _stou1 = 0UL; void setup() { _startUart0(); _stou1 = millis(); } void loop() { //Плата:1 EN_82749380_1 = !(0); period_82749380_1 = 1000UL; if(EN_82749380_1) { if(error_82749380_1) { period_82749380_1 = 750; } // если ошибка - частый опрос time_82749380_1 = millis() - time_old_82749380_1; // таймер опросов if (time_82749380_1>period_82749380_1) { // таймер опросов time_old_82749380_1 = millis(); // таймер опросов ds_82749380_1.reset(); //сброс шины ds_82749380_1.write(0xCC); //пропуск ROM ds_82749380_1.write(0xBE); // прочитать 9 байт из датчика for (byte i = 0; i < 9; i++) { // прочитать 9 байт из датчика data_82749380_1[i] = ds_82749380_1.read(); } // прочитать 9 байт из датчика int16_t raw = (data_82749380_1[1] << 8) | data_82749380_1[0]; // прочитать 9 байт из датчика temp_82749380_1 = (float)raw / 16.0; //посчитать температуру if (OneWire::crc8(data_82749380_1, 8) == data_82749380_1[8]) { crcOK_82749380_1=1; } //сверка контрольной суммы else { crcOK_82749380_1=0; count_82749380_1=0; } ds_82749380_1.reset(); //сброс шины ds_82749380_1.write(0xCC); //пропуск ROM ds_82749380_1.write(0x44, 1); //запуск измерения if (((data_82749380_1[0] == 255) && (data_82749380_1[1] == 255) && (data_82749380_1[2] == 255) && (data_82749380_1[3] == 255) && (data_82749380_1[4] == 255) && (data_82749380_1[5] == 255) && (data_82749380_1[6] == 255) && (data_82749380_1[7] == 255) && (data_82749380_1[8] == 255)) || ((data_82749380_1[0] == 0) && (data_82749380_1[1] == 0) && (data_82749380_1[2] == 0) && (data_82749380_1[3] == 0) && (data_82749380_1[4] == 0) && (data_82749380_1[5] == 0) && (data_82749380_1[6] == 0) && (data_82749380_1[7] == 0) && (data_82749380_1[8] == 0))) { brake_82749380_1 = 1; count_82749380_1 = 0; } else { brake_82749380_1 = 0; } if (count_82749380_1 < 4 && !brake_82749380_1 && crcOK_82749380_1) { // если нет обрыва и контрольная сумма правильная и меньше 3х замеров увеличить счётчик на 1 count_82749380_1++; } } //конец __(time_82749380_1>period_82749380_1)__ } // конец EN_82749380_1 error_82749380_1 = (brake_82749380_1 || (count_82749380_1 < 3) || !crcOK_82749380_1); EN_82749380_2 = !(0); period_82749380_2 = 1000UL; if(EN_82749380_2) { if(error_82749380_2) { period_82749380_2 = 750; } // если ошибка - частый опрос time_82749380_2 = millis() - time_old_82749380_2; // таймер опросов if (time_82749380_2>period_82749380_2) { // таймер опросов time_old_82749380_2 = millis(); // таймер опросов ds_82749380_2.reset(); //сброс шины ds_82749380_2.write(0xCC); //пропуск ROM ds_82749380_2.write(0xBE); // прочитать 9 байт из датчика for (byte i = 0; i < 9; i++) { // прочитать 9 байт из датчика data_82749380_2[i] = ds_82749380_2.read(); } // прочитать 9 байт из датчика int16_t raw = (data_82749380_2[1] << 8) | data_82749380_2[0]; // прочитать 9 байт из датчика temp_82749380_2 = (float)raw / 16.0; //посчитать температуру if (OneWire::crc8(data_82749380_2, 8) == data_82749380_2[8]) { crcOK_82749380_2=1; } //сверка контрольной суммы else { crcOK_82749380_2=0; count_82749380_2=0; } ds_82749380_2.reset(); //сброс шины ds_82749380_2.write(0xCC); //пропуск ROM ds_82749380_2.write(0x44, 1); //запуск измерения if (((data_82749380_2[0] == 255) && (data_82749380_2[1] == 255) && (data_82749380_2[2] == 255) && (data_82749380_2[3] == 255) && (data_82749380_2[4] == 255) && (data_82749380_2[5] == 255) && (data_82749380_2[6] == 255) && (data_82749380_2[7] == 255) && (data_82749380_2[8] == 255)) || ((data_82749380_2[0] == 0) && (data_82749380_2[1] == 0) && (data_82749380_2[2] == 0) && (data_82749380_2[3] == 0) && (data_82749380_2[4] == 0) && (data_82749380_2[5] == 0) && (data_82749380_2[6] == 0) && (data_82749380_2[7] == 0) && (data_82749380_2[8] == 0))) { brake_82749380_2 = 1; count_82749380_2 = 0; } else { brake_82749380_2 = 0; } if (count_82749380_2 < 4 && !brake_82749380_2 && crcOK_82749380_2) { // если нет обрыва и контрольная сумма правильная и меньше 3х замеров увеличить счётчик на 1 count_82749380_2++; } } //конец __(time_82749380_2>period_82749380_2)__ } // конец EN_82749380_2 error_82749380_2 = (brake_82749380_2 || (count_82749380_2 < 3) || !crcOK_82749380_2); if (!(0)) { if (_isTimer(_stou1, 1000)) { Serial.println((((_floatToStringWitRaz(temp_82749380_1,2))) + (String(" // ")) + ((_floatToStringWitRaz(temp_82749380_2,2))))); _stou1 = millis(); } } else { _stou1 = millis(); } } String _floatToStringWitRaz(float value, int raz) { return String(value,raz); } bool _isTimer(unsigned long startTime, unsigned long period) { unsigned long currentTime; currentTime = millis(); if (currentTime>= startTime) { return (currentTime>=(startTime + period)); } else { return (currentTime >=(4294967295-startTime+period)); } } void _startUart0() { int code= 6; Serial.begin(9600, (_serialModeFromInt(code))); } int _serialModeFromInt(int code) { switch (code) { case 0x00: return SERIAL_5N1; break; case 0x02: return SERIAL_6N1; break; case 0x04: return SERIAL_7N1; break; case 0x06: return SERIAL_8N1; break; case 0x08: return SERIAL_5N2; break; case 0x0A: return SERIAL_6N2; break; case 0x0C: return SERIAL_7N2 ; break; case 0x0E: return SERIAL_8N2; break; case 0x20: return SERIAL_5E1; break; case 0x22: return SERIAL_6E1; break; case 0x24: return SERIAL_7E1 ; break; case 0x26: return SERIAL_8E1; break; case 0x28: return SERIAL_5E2 ; break; case 0x2A: return SERIAL_6E2; break; case 0x2C: return SERIAL_7E2; break; case 0x2E: return SERIAL_8E2; break; case 0x30: return SERIAL_5O1; break; case 0x32: return SERIAL_6O1; break; case 0x34: return SERIAL_7O1; break; case 0x36: return SERIAL_8O1; break; case 0x38: return SERIAL_5O2; break; case 0x3A: return SERIAL_6O2 ; break; case 0x3C: return SERIAL_7O2; break; case 0x3E: return SERIAL_8O2; break; } return SERIAL_8N1; }
Вернуться наверх
veso74
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Пт июл 01, 2022 13:15:36
Сверлит текстолит когтями
Карма: 20
Рейтинг сообщений: 296
Зарегистрирован: Сб май 05, 2012 20:24:52Сообщений: 1225Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Используйте другое управление. Работает. (Библиотека DS18 оч. старая).
(Вход такой же, как у вашей схемы (11). Два датчика).
Код:
ROM = 28 41 1D 98 A 0 0 5B Chip = DS18B20 Data = 1 B4 1 4B 46 7F FF C 10 8E CRC=8E Temperature = 27.25 Celsius, 81.05 Fahrenheit ---------- ROM = 28 3B 3A 98 A 0 0 A5 Chip = DS18B20 Data = 1 B5 1 4B 46 7F FF B 10 A3 CRC=A3 Temperature = 27.31 Celsius, 81.16 Fahrenheit ---------- No more addresses.
Вернуться наверх
kolobok0
Заголовок сообщения: Re: выбор провода под датчик температуры
Добавлено: Ср июл 13, 2022 00:37:51
Зарегистрирован: Ср дек 30, 2009 09:55:39Сообщений: 277
Рейтинг сообщения: 0
...По поводу DS18B20… однопроводная шина, как и кабель терморезистора, одинаково "боятся" наводок… ....
это НЕ правда. Вы тупо не умете их готовить...
(круглый)
ЗЫ
Готовлю
любой DS18xx (не паразитным питаловом) по пром зоне десятки метров В ЛЁГКУЮ... Дорого
Вернуться наверх
Страница 2 из 2
[ Сообщений: 32 ]
,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения