1. 程式人生 > >arduino學習筆記4 讀取模擬器,PWM調節燈光亮度,感熱燈

arduino學習筆記4 讀取模擬器,PWM調節燈光亮度,感熱燈

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調節燈光亮度
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
}
接線圖如下 此時如果我們將可調電阻阻值減小,燈光就會變弱。反之則變強。 PWM全稱Pulse Width Modulation,譯為脈衝寬度調製。輸出電壓=(接通時間/脈衝時間)*最大電壓值。
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燈越亮。