Блок термистора НТС

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Блок термистора НТС

#1

Сообщение igrik1972 » 02.03.2017{, 01:42}

может кто-то создать правильный блок..... в схеме реализован Термистор НТС (+ ножка 1, 2 ножка на резисторы паралельно по 15 кОм и к аналоговому входу, -) ............ проверенно вот схема.......

#include <math.h>

#define ThermistorPIN 0                 // Analog Pin 0

float vcc = 4.91;                       // only used for display purposes, if used
                                        // set to the measured Vcc.
float pad = 7350;                       // balance/pad resistor value, set this to
                                        // the measured resistance of your pad resistor
float thermr = 1000;                   // thermistor nominal resistance

float Thermistor(int RawADC) {
  long Resistance;  
  float Temp;  // Dual-Purpose variable to save space.

  Resistance=pad*((1024.0 / RawADC) - 1); 
  Temp = log(Resistance); // Saving the Log(resistance) so not to calculate  it 4 times later
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15;  // Convert Kelvin to Celsius                      

//   BEGIN- Remove these lines for the function not to display anything
  Serial.print("ADC: "); 
  Serial.print(RawADC); 
  Serial.print("/1024"); 
//   Print out RAW ADC Number
  Serial.print(", vcc: ");
  Serial.print(vcc,2);
  Serial.print(", pad: ");
  Serial.print(pad/1000,3);
  Serial.print(" Kohms, Volts: "); 
  Serial.print(((RawADC*vcc)/1024.0),3);   
  Serial.print(", Resistance: "); 
  Serial.print(Resistance);
  Serial.print(" ohms, ");
  // END- Remove these lines for the function not to display anything

  // Uncomment this line for the function to return Fahrenheit instead.
  //temp = (Temp * 9.0)/ 5.0 + 32.0;                  // Convert to Fahrenheit
  return Temp;                                      // Return the Temperature
}

void setup() {
  Serial.begin(9600);
}

void loop() {
  float temp;
  temp=Thermistor(analogRead(ThermistorPIN));       // read ADC and  convert it to Celsius
  Serial.print("Celsius: "); 
  Serial.print(temp,1);                             // display Celsius
  //temp = (temp * 9.0)/ 5.0 + 32.0;                  // converts to  Fahrenheit
  //Serial.print(", Fahrenheit: "); 
  //Serial.print(temp,1);                             // display  Fahrenheit
  Serial.println("");                                   
  delay(5000);                                      // Delay a bit... 
}

в блоке нужен выход один.... float t_termistor

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Блок термистора НТС

#2

Сообщение starshoy81 » 02.03.2017{, 23:25}

igrik1972, А зачем блок нужен? Посмотрите видеоурок где чтение аналогового входа и масштабирование сигнала. Там все расписано и просто.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#3

Сообщение Boroda » 03.03.2017{, 00:46}

Если датчик NTC10k подключен к входу ардуины и на землю, и этот вход подтянут к +5в резистором на 10кОм, то зависимость температуры от АЦП будет примерно такая. Вход - АЦП, выход - градусы *10. Напряжение питание ардуины не будет влиять на результат измерения.

Вложения
0183301.png
Последний раз редактировалось Boroda 03.03.2017{, 09:53}, всего редактировалось 1 раз.

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Блок термистора НТС

#4

Сообщение starshoy81 » 03.03.2017{, 09:23}

Boroda, у него в коде примера все коэффициенты прописаны в самом начале, там просто измерить сопротивление и все данные подставить.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#5

Сообщение Boroda » 03.03.2017{, 10:06}

starshoy81, только сколько займет в памяти блок масштабирования и сколько займут расчеты FLOAT, логарифмы, возведение в степень? И скорости работы, думаю будут отличаться на пару-тройку порядков. И в блоке масштабирования можно подкорректировать определенные точки кривой, а в формуле этого не сделать.

Добавлено (03.03.2017, 10:06)
---------------------------------------------
А точность лучше одного градуса не получите и в том и в этом случае, потому как точность самих датчиков от 1 до 5 процентов.

holodaleksey
Лейтенант
Сообщения: 566
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 14

Блок термистора НТС

#6

Сообщение holodaleksey » 03.03.2017{, 10:36}

Ntc в принципе кривой и корявый датчик а уж при работе с ардуино так вообще будет черт те чо. Но хозяин барин.
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#7

Сообщение Boroda » 03.03.2017{, 10:47}

igrik1972, попробуйте этот блок. Термистор подключается между землей и входом.
Вложения
NTC-CODE-.ubi
(19.66 КБ) 147 скачиваний
Последний раз редактировалось Boroda 04.03.2017{, 19:27}, всего редактировалось 1 раз.

igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Блок термистора НТС

#8

Сообщение igrik1972 » 04.03.2017{, 00:09}

извините схему тестировал паралельно с DHT21, также с часами 2301 (там встроенный), также электронные....... то все сходились на 0,5-0,3 градусса....... значит формула правильны что при минусовой также при плюсовой...... 

сейчас попробую блок проверить .........

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#9

Сообщение Boroda » 04.03.2017{, 11:45}

igrik1972 писал(а):значит формула правильны
Разрядности АЦП не хватает. В диапазоне (-10..+40) еще более менее, получаем разрядность около 0,11 градуса, а в районе -50 и +100 дискретность доходит до 0,6 градуса. Но это не точность, точность хуже 1%, если не калибровать. Но такие резисторы очень широко используются в промышленных контроллерах водогрейных котлов (Крёмшрёдер, Висман и т.д.), +/-2 градуса там не важны.

Гость

Блок термистора НТС

#10

Сообщение Гость » 04.03.2017{, 13:16}

igrik1972, попробуйте этот блок ,
сделал используя код отсюда (Амперка)
Вложения
Termistor-CODE-.ubi
(14.17 КБ) 108 скачиваний

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#11

Сообщение Boroda » 04.03.2017{, 16:24}

sser, никогда не объявляйте переменные в секции Loop.

float voltage = analogRead(...)

Поставите два блока на плату и будет двойное декларирование, программа даст ошибку.
Все переменные должны быть объявлены в секции Declare.

Declare
float voltage;
Loop
voltage = analogRead(...);
Последний раз редактировалось Boroda 04.03.2017{, 16:25}, всего редактировалось 1 раз.

Гость

Блок термистора НТС

#12

Сообщение Гость » 04.03.2017{, 22:45}

Boroda писал(а):sser, никогда не объявляйте переменные в секции Loop.
Спасибо, переделал блок смотрите.
Вложения
Termistor2-CODE.ubi
(16.19 КБ) 129 скачиваний

igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Блок термистора НТС

#13

Сообщение igrik1972 » 05.03.2017{, 00:05}

СПАСИБО БОЛЬШОЕ НАКОНЕЦ-ТО за мес-полтора я вижу решение , а именно подошел (меняются цифры реально с одной ардуино на другой)...
не то что всегда одна цифа на месте и все.......... проблема в другом ........ грею а температура не поднимается а спускается ..........

что то не так Termistor2-CODE ......
 
а к примеру можете посмотреть что не так с моим я пробовал на основе Вашых...... ведь надо научится а то много еще замуток есть у меня ......

посмотрите спасибо ...... именно при проверке перед загрузкой в ардуино ........

Добавлено (05.03.2017, 00:05)
---------------------------------------------
вот где нашел по поводу использования термисторов .......

http://playground.arduino.cc/Compone....hematic
Вложения
analog_termisto.ubi
(21 КБ) 97 скачиваний

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#14

Сообщение Boroda » 05.03.2017{, 00:07}

igrik1972, резистор и термистор местами поменяйте. Термистор на землю смотрит, подтягивающий резистор на +5вольт. Любые датчики и кнопки нужно цеплять относительно ЗЕМЛИ, чтоб на длинных проводах была именно Земля, а не Плюс питания.
Последний раз редактировалось Boroda 05.03.2017{, 00:09}, всего редактировалось 1 раз.

igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Блок термистора НТС

#15

Сообщение igrik1972 » 05.03.2017{, 00:10}

минутку пробую

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#16

Сообщение Boroda » 05.03.2017{, 00:13}

Мой блок в 7 посте по принципу работы как у Sser, только настроек побольше.

igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Блок термистора НТС

#17

Сообщение igrik1972 » 05.03.2017{, 00:13}

ага супер но как откалибровать ......... 3 датчика показывают 23 но на этом 16

Добавлено (05.03.2017, 00:13)
---------------------------------------------
4300 в этом пункте

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#18

Сообщение Boroda » 05.03.2017{, 00:17}

А термистор 4300?

Добавлено (05.03.2017, 00:15)
---------------------------------------------
Обычно китайцы пишут

NTC 10K Ohm 1% 3435 Thermistor Temperature Sensor Cylinder Probe 1.5M Wire

Добавлено (05.03.2017, 00:17)
---------------------------------------------
или так

NTC-MF52-103/3435 Thermistor 10K ohm 3435K 1% Thermal Sensor

igrik1972
Рядовой
Сообщения: 75
Зарегистрирован: 08.02.2017{, 00:29}
Репутация: 1

Блок термистора НТС

#19

Сообщение igrik1972 » 05.03.2017{, 00:34}

https://ru.aliexpress.com/item.....hXvoya - вот такой бог его знает что такое но у меня их 10 шт.........

идея такова чтоб закрепить к колектору тепловому на каждому выходу труб, при повышение температуре сервопривод должен прикрывать или открывать с определенным шагом в промежутке через 10 мин. проверке ......... затея экономии тепла в доме ..... датчики тепла в комнатах само собой будут прикрывать при сработке актуатор, но там проще как кнопка 1,0 через реле...... а тут сложнее, за счет сервоприводов поступленне теплой воды станет меньше от чего давление упадет в трубе (имею ввиду одну точку) ........ вроде обьяснил затею .....

Добавлено (05.03.2017, 00:34)
---------------------------------------------
ага попробовал с 4300 - 3450 ...... с 17 упало на 15 ...... 

все понял ....... это мелоч ....... откоректую ............ ФАЙЛ в БЛОК ПОЛЬЗОВАТЕЛЕЙ с обьяснениями баланса коректировки СПАСИБО БОЛЬШОЕ

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Блок термистора НТС

#20

Сообщение Boroda » 05.03.2017{, 00:36}

Вот такие коэффициенты самые распространенные 3950 или 3435

Ответить

Вернуться в «Новые»