Показания температуры с термистора со знаком - (минус)

Bodo
Offline
Зарегистрирован: 26.10.2016

Приветствую! Помогите пожалуйста убрать знак минуса при выводе температуры, сам разбираюсь плохо и понять в чем проблема не могу(

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);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

что значит "убрать знак минуса"? - если знак появляется, значит температура. вычисленная по формуле - отрицательная. Тут не "знак убирать" надо, а разбираться. почему так получается. Вариантов очень много - не та форумула, не те табличные данные, другой термистор... неверное подключение, другой номинал резисторного делителя...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Bodo пишет:

  Serial.print(" Сопративление=");

Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"! ;)))))))))))))))))))))

Пример:

Супротив милиции он ничего не смог:
Вывели болезного, руки ему — за спину,
И с размаху кинули в "черный воронок".
(с) В.С. Высоцкий.
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:

Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"!

А я всегда думал, что "Супротивление". Как раз от "супротив".

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ЕвгенийП пишет:

wdrakula пишет:

Надо не "Сопративление", а "Супративление", проверочное слово - "супротив"!

А я всегда думал, что "Супротивление". Как раз от "супротив".

тут я апшибся маленько. Согласен.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Сдаётся мне, что 11 строка корявая )))

Bodo
Offline
Зарегистрирован: 26.10.2016

1.Подключено так:

2. Таблица из даташита на термистор.

3. Температура правильная, просто стоит знак минус

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Bodo пишет:

3. Температура правильная, просто стоит знак минус

Дак ты тогда поменяй ей знак на плюс. Делов-то. 

Bodo
Offline
Зарегистрирован: 26.10.2016

Можно подробнее? Делал по этому видео, по мне, как человеку "поморгать светодиодом" не понятно.

 

Bodo
Offline
Зарегистрирован: 26.10.2016

Пожалуйста объясните как.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

t = -t; 

Bodo
Offline
Зарегистрирован: 26.10.2016

Большое спасибо!

А не видите в чем изначально закралась ошибка?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Bodo пишет:

А не видите в чем изначально закралась ошибка?

Не. Я щас вижу только, что в пузыре уже на дне осталось, пора бежать за вторым. 

b707
Offline
Зарегистрирован: 26.05.2017

Bodo пишет:

2. Таблица из даташита на термистор.

3. Температура правильная, просто стоит знак минус

Bodo, не обманывайте себя, это невозможно, пункты 2 и 3 несовместимы между собой.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Bodo пишет:

А не видите в чем изначально закралась ошибка?

Да, чего там видеть-то? В строке 56 второй параметр map больше третьего. А теперь внимательно читаем описание map, особенно обращаем внимание на на её реализацию, приведённую в конце. Заодно, обратите внимание с какими типами она работает (это чтобы следующий вопрос сразу прикрыть).

Bodo
Offline
Зарегистрирован: 26.10.2016

Вы правы, я поторопился делать вывод, что все хорошо( Сейчас сунул в только вскипевшую воду и показывает полную фигню(

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, с map'ом то разобрались?

Bodo
Offline
Зарегистрирован: 26.10.2016

ЕвгенийП пишет:

Ну, с map'ом то разобрались?

смотрите тут

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Bodo пишет:

смотрите тут

Там неинтересно :-(