加熱溫度控制器 S0453011 許位祥 S0453023 李世震 S0453027 陳彥霖 S0353013 羅章元 指導教授:林得裕教授
目錄 實驗目標………………P.3 實驗大綱………………P.4 實驗設計………………P.5-P.18 實驗結果………………P.19
實驗目標 使一物體在我們要的溫度範圍內「線性加熱」,並將其溫度持續控在區間內。
實驗大綱 arduino 訊號放大1000倍 1000倍電壓傳過去 熱電偶 傳送電壓 數據給電腦顯示 提供溫度 控制NMOS G端的電壓 致冷晶片 NMOS 開啟或關閉電流
電路設計圖 +12V INPUT (熱電偶-端) OUTPUT 接致冷 0V 熱電偶+端 5V -12v INPUT 控制 G端電壓
利用NMOS做出開關 將VDS設為5V,s端接致冷正端,g端由我們控制 VGS給4V時,mos通過較低電流 Arduino最多給5V,所以我們用 正向放大器,給4V放大兩倍
量測溫度電壓電流關係表(熱電偶) 以ORIGIN繪製
控溫程式 #define HT 50 #define LT 36 #define A 1.85,1.88,1.94,1.99,2.07,2.1,2.17,2.23,2.31,2.48,2.56 //30ºC,32ºC,34ºC.......48ºC,50ºC float tem[11] = {A}; float t21[21]; int Ax=0; float wantV; int count10; float iniV,V75,V50,V25,lowV,midV; float temp; const int VgPin = 9; int ck=0;
void setup() { Serial.begin(9600); pinMode(VgPin, OUTPUT); for(int i=0;i<21;++i) { if(i%2) t21[i]=(tem[(i+1)/2- 1]+tem[(i+1)/2])/2; else t21[i]=tem[i/2]; }
wantV 最高溫度電壓 lowV 最低溫度電壓 midV 46度的電壓 void loop() { if(count10==10)count10=0; int V1 = analogRead(A0); float vol = V1*(5.0 / 1023.0); analogWrite(VgPin, 210); wantV=t21[(HT-30)]; lowV=t21[(LT-30)]; midV=t21[(46-30)]; } wantV 最高溫度電壓 lowV 最低溫度電壓 midV 46度的電壓
/*int x=Serial.parseInt() ; if((x!=0)&&(x%2==0)&&(x<51)&&(x>29)) {want=x;iniV=vol; wantV=tem[(want-30)/2]; if(((want-30)/2-3)>0) lowV=tem[(want-30)/2-3]; else lowV=tem[0]; } Serial.println(count10); /* for(int i=0;i<11;i++){ Serial.print(wantV); Serial.print("I received: "); Serial.println(tem[i]); */ // for(int i=0;i<11;++i)if(vol<tem[i]){Serial.println(i*2+30); break;}
狀態A超過最高溫度,旗標打開,G端電壓關掉。 狀態B低於最低溫度,旗標關閉,提供G端電壓。 if (vol > wantV){ if(Ax<1) Ax++; else { analogWrite(VgPin, 0); // Serial.println("A"); ck=1;Ax=0; }} else if(vol<lowV) if(vol>midV) analogWrite(VgPin, 210); else analogWrite(VgPin,158); // Serial.println("B"); ck=0; } else if(ck==1) 狀態A超過最高溫度,旗標打開,G端電壓關掉。 狀態B低於最低溫度,旗標關閉,提供G端電壓。 A C B D
狀態D因為旗標關閉, 提供G端電壓,在46度以下時給4V,以上給8V。 analogWrite(VgPin, 0); // Serial.println("C"); } else{ if(vol>midV) analogWrite(VgPin, 210); else analogWrite(VgPin,158); // Serial.println("D"); if (vol == temp) { temp = vol; else // Serial.print(ck); Serial.print(vol); Serial.println(" V"); 狀態C因為旗標打開, G端電壓關掉。 狀態D因為旗標關閉, 提供G端電壓,在46度以下時給4V,以上給8V。 A C B D
//for(int i=0;i<21;++i)Serial.println(t21[i]); /* if(vol>t21[20])Serial.println("Too hot over 50ºC"); else if (vol<t21[0])Serial.println("Too cold under 30ºC"); else*/ for(int i=0;i<21;++i)if(vol<t21[i]){Serial.println(i+30);/*Serial.println("ºC"); */break;} temp = vol; delay(300); } count10++;
電腦畫電路圖並印出
將電路洗出 第一次:電路版1-失敗原因可能原因為複印紙上印出的電路圖墨水不夠深,所以曝光時沒辦法完全阻擋光線,導致顯影完線路過淡,拿去蝕刻的話極有可能斷路
第二次:電路版2-失敗原因有可能是顯影時在搖晃顯影液時上下左右不夠平均,導致電路板上線路洗得不平均
第三次:電路版3-失敗原因曝光時複寫紙放反,導致最後運算放大器的腳位和電路上的左右相反
實驗結果 單純控溫圖
使用線性控溫
分工表 S0453023 李世震:Origin繪圖、洗電路板、焊電路、 製作word檔、上台報告、元件採買 S0453011 許位祥:Origin繪圖、洗電路板、測試元件、元件採買、製作ppt檔 S0453027 陳彥霖:實驗設計、洗電路板、研究mos特性、測試元件、製作ppt檔、上台報告 S0353013 羅章元:實驗設計、程式設計、焊電路、研究MOS特性、影片製作
謝謝大家