使用Arduino量測直流(DC)電壓 林品成 2018.6月
大綱 Outline 硬體 軟體 實現方式 量測架構 量測結果
研究背景 硬體 Arduino 的特色如下: 軟體硬體都是開放的。 可簡單地與感測器、電子元件連接。 使用 USB 介面與電腦作傳輸,不需外接電源。 基本規格如下: 1、Digital I/O 數位式輸入/輸出端共 1~13。 2、Analog I/O 類比式輸入/輸出端共 0~5。 3、支援 USB 接頭傳輸資料及供電。 4、支援三組 PWM 端子(Pin11, Pin10, Pin9)。 5、自行供應電源時,建議使用 5V~12V DC 輸入;輸出電壓 5V DC。
研究背景 硬體 接地 0~12數位輸出/輸入埠 Reset重置鈕 USB座,可提供電力和傳輸資料 7V~12V電源輸入插座 電源輸入 A0~A5類比輸入埠 兼數位輸出/輸入埠 重置接腳 電源輸出
軟體 Arduino IDE Arduino IDE軟體介面 Arduino的開發環境,採用Java編寫的,軟體無需安裝,下載完成解壓縮後就可以直接打開使用。 Arduino開發環境使用的語法與c/c++相似,容易使用。 可以在不同的作業平台上都可以開發,不管是Windows、蘋果電腦、還是Linux 都可以使用與開發Arduino。 可以配著其他介面軟體,以及程式的撰寫,進而完成自己的實作開發設計。 Arduino IDE軟體介面
實現方式 Arduino 量測直流電壓功能 IDE 監控視窗 void setup() { Serial.begin(9600); //每秒鐘傳輸9600位元 (bit/s) pinMode(A0,INPUT); //對 A0 這個 pin 腳做初始,並決定作為接收(INPUT)訊號。 Serial.println("time(s) ADC DC Voltage(V) "); //印出時間、ADC值、直流電壓值 } unsigned long time; //時間函式 void loop() { int val = analogRead(A0); //讀取A0所量測到的數值 float voltage = val * (5.0 / 1023.0); //ADC轉電壓值公式 time=micros(); //此函式會傳回從開機到現在的微秒數 float times = time*0.000001; //將微秒數轉為秒數 Serial.print(times); //印出時間 Serial.print(" "); Serial.print(val); //印出ADC值 Serial.print(" "); Serial.print(voltage); //印出電壓值 Serial.println(“”); //println功能為換到下一行 IDE 監控視窗
實現方式 程式重點說明: ARDUINO的ADC範圍為(0~1023),對應電壓值為(0V~5V),故電壓解析度最小值:5V/1023=0.0048V unsigned long為長整數,其記憶體長度是32 bits,數值範圍: 0~4294967295 int 為整數,其記憶體長度是16 bits ,數值範圍: -32768~32767 float為浮點數,其記憶體長度是32 bits,數值範圍: ± 3.4028235e+38 為保護板子,本實驗量測直流電壓切勿超過5V
研究背景 量測架構 GND A0 - Power Supply + 量測架構圖
研究背景 量測結果 時間 ADC 電壓 時間 ADC 電壓 時間 ADC 電壓 量測GND 量測5V 量測3.3V
研究背景 量測結果 利用Origin9 進行 fitting 結果 ADC量測數值曲線圖 DC電壓量測數值曲線圖
研究背景 量測結果 利用Origin9 進行 fitting 結果 5V 1023 3.3V 684 ADC&DC電壓量測數值Double-Y曲線圖
THE END