Arduino - 讀取模擬電壓



此示例將向您展示如何在模擬引腳 0 上讀取模擬輸入。輸入透過 analogRead() 函式轉換為電壓,並列印到 Arduino 軟體(IDE)的序列監視器中。

所需元件

您將需要以下元件 -

  • 1 × 麵包板
  • 1 × Arduino Uno R3
  • 1 × 5K 可變電阻器(電位器)
  • 2 × 跳線

步驟

按照電路圖,將元件連線到麵包板上,如下圖所示。

Analog Breadboard

電位器

電位器(或電位計)是一種簡單的機電換能器。它將來自輸入操作器的旋轉或線性運動轉換為電阻的變化。這種變化被(或可以被)用於控制任何東西,從高保真音響系統的音量到大型集裝箱船的方向。

我們所知的電位器最初被稱為電阻器(本質上是一個可變繞線電阻器)。現在可用的電位器的種類非常多,對於初學者(尤其是)來說,很難確定哪種型別適合於特定的任務。幾種不同的電位器型別,都可以用於相同的任務,這使得工作更加困難。

Potentiometer

左側的圖片顯示了電位器的標準示意圖符號。右側的圖片是電位器。

草圖

在您的計算機上開啟 Arduino IDE 軟體。使用 Arduino 語言進行編碼將控制您的電路。透過點選“新建”開啟一個新的草圖檔案。

Sketch

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);
}

程式碼註釋

在下面給出的程式或草圖中,您在 setup 函式中首先要做的事情是開始序列通訊,在您的開發板和計算機之間以 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 中開啟序列監視器。

Serial Monitor

結果

您將看到一連串從 0.0 到 5.0 的數字。當您旋轉電位器時,值將發生變化,對應於 A0 引腳上的電壓。

廣告