arduino學習筆記4 讀取模擬器,PWM調節燈光亮度,感熱燈
阿新 • • 發佈:2019-01-01
1.讀取模擬器
接線圖如下 要注意,麵包板中間大橫槽隔開的兩頭不連通,如果可調電阻橫跨兩頭,或者接線從大橫槽斷開,實驗都會失敗。 此時上傳程式碼,開啟串列埠監視器,就可以看到反饋的數字在不斷更新,旋轉可調電阻,就可以看到數值的變化。int potpin=0;//指定模擬埠A0 int ledpin=13;//指定LED埠 13 int val=0;//宣告臨時變數 void setup() { pinMode(ledpin,OUTPUT);//設定埠13為輸出模式 Serial.begin(9600);//設定串列埠波特率為9600 } void loop() { digitalWrite(ledpin,HIGH);//拉高階口13,LED點亮 delay(50);//延時0.05秒 digitalWrite(ledpin,LOW);//拉低埠13,關閉LED delay(50);//延時0.05 秒 val=analogRead(potpin);//讀取A0口的電壓值並賦值到val Serial.println(val);//串列埠傳送val值 }
2.PWM調節燈光亮度
接線圖如下 此時如果我們將可調電阻阻值減小,燈光就會變弱。反之則變強。 PWM全稱Pulse Width Modulation,譯為脈衝寬度調製。輸出電壓=(接通時間/脈衝時間)*最大電壓值。int potpin=0;//定義模擬介面0 int ledpin=11;//定義數字介面11(PWM 輸出),arduino有六個PWM介面,分別是3,5,6,9,10,11 int val=0;// 暫存來自感測器的變數數值 void setup() { pinMode(ledpin,OUTPUT);//定義數字介面11 為輸出 Serial.begin(9600);//設定波特率為9600 //注意:模擬介面自動設定為輸入 } void loop() { val=analogRead(potpin);// 讀取感測器的模擬值並賦值給val Serial.println(val);//顯示val 變數 analogWrite(ledpin,val/4);// 開啟LED 並設定亮度(PWM 輸出最大值255) delay(10);//延時10ms }
3.感熱燈
int potpin=0;//設定模擬埠A0 int ledpin=11;//設定數字埠11 ,後面用作PWM輸出 int val=0;//宣告變數val void setup() { pinMode(ledpin,OUTPUT);//設定數字11為輸出模式 Serial.begin(9600);//設定波特率為9600 } void loop() { val=analogRead(potpin);//讀取A0的模擬電壓值,並賦值到val val = 245- val/2; if(val < 0) val = 0; Serial.println(val); analogWrite(ledpin,val);// PWM輸出驅動LED delay(100);//延時100ms }
接線圖如下,LED燈連線一個220歐電阻,熱敏電阻器連線一個10K電阻
此時效果為,熱敏電阻器所處的環境越熱,LED燈越亮。