Arduino - 讀取模擬電壓
此示例將向你展示如何讀取模擬引腳 0 上的模擬輸入。analogRead()
從輸入讀取模擬電壓,並列印到 Arduino 軟體(IDE)的序列監視器。
需要的元件
你將需要以下元件 -
- 1×麵包板
- 1×Arduino Uno R3
- 1×5K 可變電阻(電位器)
- 2×跳線
程式
按照電路圖並連線面包板上的元件,如下圖所示。
電位器
電位計(或電位器)是一種簡單的機電感測器。它將來自使用者的旋轉或線性運動轉換為電阻變化。
我們所知道的電位器最初被稱為變阻器(一種可變線繞電阻器)。各種可用的電位器現在非常驚人,並且初學者可能很難確定哪種型別適合於給定的任務。一些不同的電位器型別,可以全部用於相同的任務,使工作更難。
左側的影象顯示了電位器的標準示意符號。右邊的影象是電位計。
草圖
在你的計算機上開啟 Arduino IDE 軟體。用 Arduino 語言編碼將控制你的電路。單擊“新建”開啟新的草圖檔案。
Arduino 程式碼
/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage,
and prints the result to the serial monitor.
Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
*/
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}
程式碼注意
在下面給出的程式或草圖中,你在設定功能中所做的第一件事就是在電路板和計算機之間以每秒 9600 位的速度開始序列通訊 -
Serial.begin(9600);
在程式碼的主迴圈中,你需要建立一個變數來儲存來自電位計的電阻值(介於 0 和 1023 之間,非常適合 int 資料型別) -
int sensorValue = analogRead(A0);
要將值從 0-1023 更改為與電壓對應的範圍,引腳正在讀取,你需要建立另一個變數,浮點數並進行一些計算。要縮放 0.0 到 5.0 之間的數字,將 5.0 除以 1023.0 並乘以 sensorValue
-
float voltage= sensorValue * (5.0 / 1023.0);
最後,你需要將此資訊列印到序列視窗。你可以使用最後一行程式碼中的 Serial.println()
命令執行此操作 -
Serial.println(voltage)
現在,通過單擊頂部綠色欄右側的圖示或按Ctrl + Shift + M開啟 Arduino IDE 中的序列監視器。
結果
你將看到穩定的數字流,範圍從 0.0 到 5.0。當你轉動電位器時,數值會改變,對應於引腳 A0 的電壓。