8.Arduino-類比轉換-map

程式碼說明

1.map(腳位,舊的最小值,舊的最大值,新的最小值,新的最大值):我們可以用map將原本的類比範圍從0~1024改成0~255,以便控制LED亮度或馬達轉速。假設收訊來源在A0,程式碼:map(A0,0,1024,0,255);

範例說明

    透過可變電阻調整類比數值,進而改變LED亮度

線路圖

程式碼

int vr=A0;//可變電阻為A0

int led=9;//LED9

int vr_read;//感應的類比數值

int vr_map;//修改後的類比數值

void setup() {

  Serial.begin(9600); //打開主機板通路,9600位元/

  pinMode(led,OUTPUT);//LED為輸出裝置

  pinMode(vr,INPUT);//可變電阻為輸入裝置

}

 void loop() {

  vr_read=analogRead(vr);//vr_read=感應可變電阻腳位的類比數值

  vr_map =map(vr_read,0,1024,0,255);//轉換數值範圍1024255

  //因為用analogWrite控制LED的範圍是0~255

  //而感應類比數值的範圍是0~1024,除4後最大值接近255

  Serial.print("類比數值:");//顯示 類比數值(文字):

  Serial.print(vr_map);//顯示 類比數值(數值)

  Serial.println();//換行

  Serial.println();//換行

  analogWrite(led, vr_map);

  delay(150);

}

範例照片

(透過旋轉可變電阻來改變LED亮度)

(analogRead從0~255) 

留言

這個網誌中的熱門文章

補充.Arduino教學-驗證與上傳-問題排除

13.Arduino-模組介紹-RGB呼吸燈

補充.Arduino教學-連接-麵包板與線路圖