Добрый день.
Ищу решение вот такой проблемы, есть Arduino uno и термометр сопротивления платиновый (pt100 с сопротивлением в 100 Ом при 0*С, и 138,5 Ом при 100*С) , нужно получить с него значение температуры.
Мои действия:
Так как Arduino не может считать силу тока на аналоговом входе, а понимает только напряжение - пришлось собрать делитель напряжения из резистора в 100 Ом и самого ТСП.
(Подключить ТСП напрямую одним проводом в 5в, а другим в аналоговый вход , не используя делитель напряжения не получается) - Если есть такая возможность прошу объяснить как?
Дальше я вычислял какое значение соответствует одному делению аналогового входа Arduino: 5в/1024=0,0048в.
Используя
калькулятор для делителя напряжения я посчитал, что напряжение для температуры в 20*С (107.79 Ом) должно быть 2.593в, что должно соответствовать значению (2.593в/0,00488=)531 от аналогового входа Arduino. Чему оно примерно не соответствует на 10-12 едениц.
После чего вычислил значения для 0*С(100 Ом)=2.5в/0.00488=512 и для 100*С(138.5 Ом)=2.9035в/0.00488=595 и задал перевод этих значений от 0 до 100.
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print( map ( analogRead(A0) , 512 , 595 , 0 , 100 ) );
Serial.println("");
delay( 1000 );
}
И как выходное значение я получаю температуру в среднем на 20*С большую чем должна быть.
Вопрос в чем ошибка или что я делаю не так?