Показания температуры с термистора со знаком - (минус)
- Войдите на сайт для отправки комментариев
Пнд, 17/08/2020 - 15:57
Приветствую! Помогите пожалуйста убрать знак минуса при выводе температуры, сам разбираюсь плохо и понять в чем проблема не могу(
const byte s = 0;
int i = 0;
float v;
float t;
float r;
int mt[29];
float mr[29];
void setup() {
Serial.begin(9600);
for (int j = 0; j < 29; j++) {
mt[j] = -30 + (j * 5);
}
mr[0] = 17.7;
mr[1] = 13.04;
mr[2] = 9.707;
mr[3] = 7.293;
mr[4] = 5.533;
mr[5] = 4.232;
mr[6] = 3.265;
mr[7] = 2.539;
mr[8] = 1.99;
mr[9] = 1.571;
mr[10] = 1.249;
mr[11] = 1.0000;
mr[12] = 0.8057;
mr[13] = 0.6531;
mr[14] = 0.5327;
mr[15] = 0.4369;
mr[16] = 0.3603;
mr[17] = 0.2986;
mr[18] = 0.2488;
mr[19] = 0.2083;
mr[20] = 0.1752;
mr[21] = 0.1481;
mr[22] = 0.1258;
mr[23] = 0.1072;
mr[24] = 0.09177;
mr[25] = 0.07885;
mr[26] = 0.068;
mr[27] = 0.05886;
mr[28] = 0.05112;
}
void loop() {
i = analogRead(s);
Serial.print("Значение=");
Serial.print(i);
v = map(i, 0, 1023, 0, 5000);
v = v / 1000;
Serial.print(" Напряжение=");
Serial.print(v, 3);
r = v * 10.0 / (5.0 - v);
Serial.print(" Сопративление=");
Serial.print(r, 4);
for (int j = 0; j < 28; j++) {
if (r < mr[j] && r >= mr[j + 1]) {
t = map(r * 1000, mr[j] * 1000, mr[j + 1] * 1000, mt[j] * 100, mt[j + 1] * 100);
t = t / 100;
j = 28;
}
}
Serial.print("Температура ");
Serial.println(t);
delay(1000);
}
что значит "убрать знак минуса"? - если знак появляется, значит температура. вычисленная по формуле - отрицательная. Тут не "знак убирать" надо, а разбираться. почему так получается. Вариантов очень много - не та форумула, не те табличные данные, другой термистор... неверное подключение, другой номинал резисторного делителя...
Serial.print(" Сопративление=");Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"! ;)))))))))))))))))))))
Пример:
Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"!
А я всегда думал, что "Супротивление". Как раз от "супротив".
Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"!
А я всегда думал, что "Супротивление". Как раз от "супротив".
тут я апшибся маленько. Согласен.
Сдаётся мне, что 11 строка корявая )))
1.Подключено так:
2. Таблица из даташита на термистор.
3. Температура правильная, просто стоит знак минус
3. Температура правильная, просто стоит знак минус
Дак ты тогда поменяй ей знак на плюс. Делов-то.
Можно подробнее? Делал по этому видео, по мне, как человеку "поморгать светодиодом" не понятно.
Пожалуйста объясните как.
t = -t;
Большое спасибо!
А не видите в чем изначально закралась ошибка?
А не видите в чем изначально закралась ошибка?
Не. Я щас вижу только, что в пузыре уже на дне осталось, пора бежать за вторым.
2. Таблица из даташита на термистор.
3. Температура правильная, просто стоит знак минус
Bodo, не обманывайте себя, это невозможно, пункты 2 и 3 несовместимы между собой.
А не видите в чем изначально закралась ошибка?
Да, чего там видеть-то? В строке 56 второй параметр map больше третьего. А теперь внимательно читаем описание map, особенно обращаем внимание на на её реализацию, приведённую в конце. Заодно, обратите внимание с какими типами она работает (это чтобы следующий вопрос сразу прикрыть).
Вы правы, я поторопился делать вывод, что все хорошо( Сейчас сунул в только вскипевшую воду и показывает полную фигню(
Ну, с map'ом то разобрались?
Ну, с map'ом то разобрались?
смотрите тут
смотрите тут
Там неинтересно :-(