Arduino 的 I/O有數位輸出入和類比輸出入,我們可以透過類比輸入來讀取一個可變電位計的電壓值
Jason Chin 2019/9/20
這個範例是透過 Arduino 的類比 Pin 來讀取一個電位計的電壓值,電位計其實是一個可變電阻,調整轉動電位計時,中心腳的電壓會隨之變化,經由類比輸入電值,內部有 A/D 轉換(類比轉數位) 再將讀值顯示在 Serial Monitor 的視窗中
硬體需求
- Arduino 電路板
- 10k ohm 可變電阻(電位計)
電路連接
如下圖,電位計共三支腳,紅色線的腳連接+5V,黑色線連接 GND (接地) 藍色線接到 Analog 0 (A0) 的位置
電路圖
程式碼
必須在sketch的程式中,設定串列的速度 (Baud Rate) 為 9600,才能接收到來自 Arduino 所讀到的類比輸入的讀值
Serial.begin(9600);
接著在程式中, Loop 段落加入如下的指令儲存讀到的值到變數中
int sensorValue = analogRead(A0);
最後,你要透過串列通訊 (USB) 將值傳給電腦,用如下的指令::
Serial.println(sensorValue)
將程式上傳到 Arduino 後,打開 Arduino Software(IDE) 的Serial Monitor 功能,你可看到 Arduino 讀到類比輸入的讀值,只要手動調整電位計,讀值也隨之變化,即時的傳到 Serial Monitor 中,這樣就完成了這個實驗
以下為原文的程式碼
/*
AnalogReadSerial
Reads an analog input on pin 0, 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.
This example code is in the public domain.
*/
// 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);
// print out the value you read:
Serial.println(sensorValue);
delay(1); // delay in between reads for stability
}