N76E003之ADC採集NTC溫度

RG選用10k 1%精度NTC熱敏電阻,R1使用10k 1%精度貼片電阻,電路如下圖1所示,使用N76E003單片機AIN4通道進行採樣,使用帶隙電壓進行修正。

分壓計算公式:Urg=[RG/(RG+R1)]*Vdd *Coe
其中Coe是通過帶隙電壓得到的修正係數,爲了獲得正確的Vdd電壓
在這裏插入圖片描述
(圖1)

下圖2爲NTC熱敏電阻數據手冊中給出的電阻值對應溫度表
在這裏插入圖片描述在這裏插入圖片描述
(圖2)

在程序中建立一溫度/電阻對應數組(其中溫度爲數組的對應位)

//正溫度數組	
float TemperList1[55]={32.1,30.6,29.1,27.7,26.4,25.2,23.9,22.8,21.7,20.7,19.7,18.8,18,
17.1,16.4,15.6,14.9,14.2,13.6,13,12.4,11.9,11.4,10.9,10.4,10,9.5,9.1,8.7,8.4,8,7.7,
7.4,7.1,6.8,6.5,6.2,6,5.7,5.5,5.3,5.1,4.9,4.7,4.5,4.3,4.1,4,3.8,3.7,3.5,3.4,3.3,3.2,3};

帶隙電壓獲取與修正在此不表,如有需要請看這篇博客

ADC_VC爲單片機AIN4採集到的電壓值
NTCr爲計算得到的電阻值
TemperList1爲正溫度對照表
TemperAddr初值爲-1,爲溫度值

/*熱敏電阻測溫度*/
/*
1、逆推NTC阻值——NTCr=(-10000*ADC_VC)/(ADC_VC-3300)
2、使用查表法(溫度作爲地址)

*/
void ADC_NTC()
{
	uint i=0;
	temp=ADC_VC/1000.00;	//將採集到的電壓轉換爲浮點型
	NTCr=(10*temp)/(3.2-temp);//計算當前電阻值
	if(NTCr<=32.1&&NTCr>=3)//此時爲正溫度,使用TemperList1
	{
		for(i=0;i<55;i++)
		{
			if(NTCr>TemperList1[i])
			{
				TemperAddr=i-1;//數據遷移一位
				break;//跳出循環
			}
		}
	}
	if(TemperAddr!=-1)//爲真,則表示已經讀出數據
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章