標籤:
類比訊號輸入
本例中,我們根據電位器(或用光敏電阻替代)的阻值變化來改變LED閃爍頻率。電阻的類比訊號值將根據電壓變化。
完成本例所需的硬體裝置
- Arduino板或Genuino板
- 電位器 或 10kΩ光敏電阻+10kΩ電阻
- 紅色220Ω LED燈(或者板載LED)
電路串連電位器接法
串連3根線到Arduino/Genuino板。電位器一個外側的引腳串連到GND,另一個外側的引腳串連到+5V。A0口串連到電位器中間引腳。
對於本例來說,用13號板載LED也可。如要用外加LED,將LED長腳(陽極)用220Ω電阻串連到13號引腳。將LED短腳(陰極)串連到GND引腳。
譯者註:原文是“串連到13號引腳旁邊的引腳”。
光敏電阻接法
用光敏電阻的電路使用分壓器來保證類比訊號在轉換電壓時有高阻抗。因為類比輸入引腳幾乎不會消耗任何電流,因此根據歐姆定律,不管電阻阻值為多少,串連到5V的那一端總是5V。為了根據光敏電阻阻值變化改變電壓,電阻分壓器必不可少。電路中用一個可變電阻和一個電位器來組成分壓器,分壓器”劃片”在兩電阻的中間。
測量的電壓應根據以下公式可算得:
Vout=Vin*(R2/(R1+R2))
Vin為5V,R2為10kΩ,R1為光敏電阻。光敏電阻在黑暗時為1mΩ,白天(10 流明 )時10kΩ,日光下/明亮燈(超過100 流明 )管下小於1kΩ)。
原理圖電位器接法
光敏電阻接法
常式代碼
在代碼開頭,sensorPin變數被設定為A0,A0口串連著電位器。LED引腳被設定為13。你也可建立另一個sensorValue變數來儲存從感應器讀出來的值。
analogRead()函數將0-5v的電壓值對應成為0-1023。這個操作通過板子上的數模轉換電路(ADC)完成。
通過轉動電位器的軸,你能改變電位器劃片兩側的電阻(整個電位器是由其中間引腳分開的滑動變阻器)。這樣一來就能改變中間引腳上的電壓,從而讓你在analogRead()讀出不同的值。當電位器轉軸被朝一個方向轉到底時,中間引腳和串連到GND引腳之間的電阻為0。analogRead() 此時應返回0。當電位器轉軸被朝另一個方向轉到底時,中間引腳和串連到5v引腳之間的電阻為0。中間引腳串連到+5v,analogRead() 返回1023。在中間時,analogRead() 根據A0口上的電壓按照比例返回0-1023的值。
傳回值被存入sensorValue,sensorValue用來設定delay()的毫秒數,即為閃爍的間隔時間。sensorValue值越小,閃爍的間隔時間越小。sensorValue的值是在閃爍的開頭讀取的,因此LED開啟和關閉之間的時間也總是相等的。
/* Analog Input 本例向你展示在A0口讀取輸出類比訊號的感應器的值,並且根據這個值讓13號引腳的LED閃爍。LED的閃爍周期根據analogRead()傳回值確定。 電路搭建: * 電位器中間的引腳串連到A0,兩側分別串連+5V和GND * LED陽極(長腳) 串連到13號引腳 * LED負極(短腳)串連到GND * 小貼士:因為大多數板有板載LED串連到13號引腳,因此外加的LED是可選的。 代碼是公開的。 */int sensorPin = A0; // 設定電位器的引腳int ledPin = 13; // 設定LED引腳int sensorValue = 0; // 感應器值的儲存變數void setup() { // 聲明ledPin為輸出模式: pinMode(ledPin, OUTPUT);}void loop() { // 從感應器讀值: sensorValue = analogRead(sensorPin); // 開啟LED digitalWrite(ledPin, HIGH); // 暫停程式sensorValue毫秒: delay(sensorValue); // 將LED關閉: digitalWrite(ledPin, LOW); // 暫停程式sensorValue毫秒: delay(sensorValue);}
相關資料
pinMode()
analogRead()
digitalWrite()
delay()
類比訊號與串口: 從類比訊號輸入引腳讀取一個值,然後用這個值控制LED小燈
類比訊號輸入: 使用電位器來控制LED的閃爍。
類比訊號輸出[Mega]: 使用Arduino Mega板讓12個LED一個接一個亮度逐漸減弱。
類比訊號的校準: 設定感應器輸出類比訊號的最大、最小值來達到預期效果。
LED亮度漸隱:使用脈寬引腳(PWM pin)來讓一個LED的亮度漸弱。
訊號平滑:讓多個類比引腳的輸入值變得更加均勻平滑。
更新進程
| 日期 |
日誌 |
譯者 |
| 2016年5月9日 |
建立並翻譯文檔 |
唐家勳 |
譯者:唐家勳
郵箱:mrst[email protected]
QQ:649196486
轉載請註明出處,一切只因為熱愛。
希望您能指出寶貴意見,謝謝。
【Arduino官方教程第一輯】樣本程式 3-2 類比訊號輸入