jinglixixi 发表于 2022-12-15 00:09

【ATSAMD51EVK测评报告】+基于NTC的温度检测

#申请原创#
NTC是一种热敏元件,通过测温电路与片内ADC数模转换功能的配合可实现温度的检测,其电路如图1所示。
图1NTC测温电路测温电路的原理图见图2所示,这里所用的NTC的阻值为10K。
图2 测温电路实现温度检测的主程序为:int main ( void )
{
    float u;
    SYS_Initialize ( NULL );
    ADC0_Enable();
    SYSTICK_TimerStart();
    EIC_CallbackRegister(EIC_PIN_15, switch_handler, (uintptr_t) NULL);
    DAC_DataWrite(DAC_CHANNEL_0, dac_count);
    while (1)
    {
      ADC0_ConversionStart();
      while(!ADC0_ConversionStatusGet())
      {
      };
      adc_count = ADC0_ConversionResultGet();
      input_voltage = (float)adc_count * ADC_VREF / 4095U;
      printf("ADC Count = 0x%03x, ADC Input Voltage = %d.%02d V \r", adc_count, (int)input_voltage, (int)((input_voltage - (int)input_voltage)*100.0));
      u=(float)adc_count * ADC_VREF/4095U;
      ...
      if((u<=1.644)&&(u>1.268)) u=10+(1.644-u)/0.037;
      if((u<=1.268)&&(u>0.947)) u=20+(1.268-u)/0.032;
      if((u<=0.947)&&(u>0.692)) u=30+(0.947-u)/0.025;
      ...
      printf("temp = %d C\r",(int)u);
      SYSTICK_DelayMs(500);
    }
    return ( EXIT_FAILURE );
}
经程序的编译与下载,其运行效果如图3和图4所示。
图3 室温检测

图4 体温检测

mollylawrence 发表于 2022-12-23 22:07

ADC的采样精度怎么样            

jinglixixi 发表于 2022-12-24 09:45

mollylawrence 发表于 2022-12-23 22:07
ADC的采样精度怎么样

12位的

abotomson 发表于 2022-12-24 20:40

这个ATSAMD51EVK性能不错啊。

jackcat 发表于 2022-12-24 21:39

ntc怎么转换为温度?            

jinglixixi 发表于 2022-12-25 10:26

jackcat 发表于 2022-12-24 21:39
ntc怎么转换为温度?

查温度阻值表进行变换

pl202 发表于 2023-1-5 14:43

热敏传感器的吗?            

jinglixixi 发表于 2023-1-6 11:50

pl202 发表于 2023-1-5 14:43
热敏传感器的吗?

NTC热敏电阻

adolphcocker 发表于 2023-1-6 12:41

测温的效果如何?            

jinglixixi 发表于 2023-1-6 16:42

adolphcocker 发表于 2023-1-6 12:41
测温的效果如何?

还可以,如果需要提升显示精度,可以对照阻值温度变化表来细化处理。

klayjie 发表于 2023-1-13 10:29

MARK
页: [1]
查看完整版本: 【ATSAMD51EVK测评报告】+基于NTC的温度检测