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 的電壓。