Считывание неверного значения температуры с термистора с помощью EVK1100

Я хочу получить температуру от термистора, поэтому я сделал делитель напряжения (от 3,3 В до 10 кОм резистора и между массой 10 кОм термистора), и я прочитал АЦП между резистором 10 кОм и термистором. BCOEFFICIENT - 3977, НОМИНАЛЬНАЯ ТЕМПЕРАТУРА - 25C, и я использую простое уравнение параметра B. Я не уверен, где я делаю ошибку, я прочитал комнатную температуру как 10.5C, которая должна была быть около 24C. Ниже приведена часть программы, которую я использовал для датчика температуры (разработанной в студии AVR),

 #define TEMPERATURENOMINAL 25
 #define TERMISTORNOMINAL 10000
 #define BCOEFFICIENT 3977
 #define SERIESRESISTOR 10000
{
float ke1,tempa,xin
ke1 = adc_get_value(peak_adc2,peak2);
xin=(1023/ke1)-1;
xin=SERIESRESISTOR/xin;
tempa=xin/TERMISTORNOMINAL;
tempa=log(tempa);
tempa/= BCOEFFICIENT;
tempa+=1.0/(TEMPERATURENOMINAL + 273.15);
tempa=1.0/tempa;
tempa-=273.15;
dip204_set_cursor_position(1,3);
//sprintf(ui, "Temp is %.2f deg", Ref);
sprintf(ui, "Temp is %.2f deg", tempa);
      dip204_write_string(ui);
}

Я проверил напряжение с помощью мультиметра, например, между термистором и резистором 10 кОм и в EVK 1100, используя следующую строку

ke1 = adc_get_value(peak_adc2,peak2)*3.3/1024;

Я получаю одинаковое напряжение в обоих. Не уверен, где я делаю ошибку, надеюсь, кто-то направит меня в правильном направлении

1 ответ

Решение

Ваш код выглядит правильно для меня, и я подозреваю, что причиной может быть аппаратная проблема.

Вероятно, вы случайно подключили два подтягивающих резистора 10 кОм между входом АЦП и опорным напряжением +3,3 В: возможно, один из них уже подключен к плате EVK1100, и вы добавили еще один, внешний, подключенный к вашему термистору. Это было бы эквивалентно расположению обоих резисторов 10 кОм параллельно друг другу, что было бы эквивалентно резистору 5 кОм, включенному последовательно с термистором. При 25°C сопротивление термистора Rt будет читать 10 кОм, который будет производить напряжение:

+3.3V * (Rt / (Rt + 5K))

= 2.20V

вместо правильного +1.65V. Это число очень близко к результату, который вы видите (+2,17 В при 24°C).

Вы можете проверить эту гипотезу, посмотрев на схему и / или печатную плату для EVK1100, чтобы увидеть, подключен ли подтягивающий резистор на 10 кОм от входа АЦП к +3,3 В. Если это проблема, удалите один из двух резисторов, и вы должны увидеть правильное поведение.

Другие вопросы по тегам