Показания температуры с термистора со знаком - (минус)
- Войдите на сайт для отправки комментариев
Пнд, 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); }
что значит "убрать знак минуса"? - если знак появляется, значит температура. вычисленная по формуле - отрицательная. Тут не "знак убирать" надо, а разбираться. почему так получается. Вариантов очень много - не та форумула, не те табличные данные, другой термистор... неверное подключение, другой номинал резисторного делителя...
Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"! ;)))))))))))))))))))))
Пример:
Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"!
А я всегда думал, что "Супротивление". Как раз от "супротив".
Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"!
А я всегда думал, что "Супротивление". Как раз от "супротив".
тут я апшибся маленько. Согласен.
Сдаётся мне, что 11 строка корявая )))
1.Подключено так:
2. Таблица из даташита на термистор.
3. Температура правильная, просто стоит знак минус
3. Температура правильная, просто стоит знак минус
Дак ты тогда поменяй ей знак на плюс. Делов-то.
Можно подробнее? Делал по этому видео, по мне, как человеку "поморгать светодиодом" не понятно.
Пожалуйста объясните как.
t = -t;
Большое спасибо!
А не видите в чем изначально закралась ошибка?
А не видите в чем изначально закралась ошибка?
Не. Я щас вижу только, что в пузыре уже на дне осталось, пора бежать за вторым.
2. Таблица из даташита на термистор.
3. Температура правильная, просто стоит знак минус
Bodo, не обманывайте себя, это невозможно, пункты 2 и 3 несовместимы между собой.
А не видите в чем изначально закралась ошибка?
Да, чего там видеть-то? В строке 56 второй параметр map больше третьего. А теперь внимательно читаем описание map, особенно обращаем внимание на на её реализацию, приведённую в конце. Заодно, обратите внимание с какими типами она работает (это чтобы следующий вопрос сразу прикрыть).
Вы правы, я поторопился делать вывод, что все хорошо( Сейчас сунул в только вскипевшую воду и показывает полную фигню(
Ну, с map'ом то разобрались?
Ну, с map'ом то разобрались?
смотрите тут
смотрите тут
Там неинтересно :-(