Arduino範例程式: AnaloginOutSerial

程式目的:將類比電壓轉換成數位訊號(ADC),並由Output輸出PWM,及透過串列通訊輸出數值。

 

001.png

003.png

002.png

ADC值:526-527

電源電壓量測值:4.6V

電壓解析度最小值:4.6V/1023=0.0045V

ADC輸入電壓量測值2.37V轉換為ADC數值: 2.37/0.0045=527(與ADC轉換的數值幾乎相符)

DS0003.BMP

(黃色為ADC輸入電壓;藍色為5V電源電壓)

 

ADC轉換後的PWM值:131

PWM最小解析度:1/256=0.39062%

PWM量測值51.76%轉換為PWM數值:51.76/0.39062=132.51(與ADC轉換的PWM數值誤差1.51)

DS0002.BMP

(黃色為PWM輸出;藍色為5V電源電壓)
 

 

程式說明:

[設定]

1.設定類比電壓輸入為PIN A0

2.設定PWM輸出為PIN 9

3.設定Uart串列傳輸速率為9600bps

 

[主程序]

1.讀取邏輯電壓並轉換為數位訊號 (sensorValue = analogRead(analogInPin);)

2.將數位訊號轉換為PWM訊號可輸出區間 (outputValue = map(sensorValue, 0, 1023, 0, 255);)

3.輸出PWM訊號 (analogWrite(analogOutPin, outputValue);)

4.UART輸出電壓數值(0~1023)及PWM數值(0~255)

 

 

使用函式:

UART串列傳輸速率設定

Serial.begin(9600)

UART輸出

Serial.print("sensor = ")

 

讀取類比電壓並轉為數位訊號: 透過解析度10bit ADC將類比電壓轉換為數位訊號(如電壓0~5V->數位訊號0~1023階)

analogRead(analogInPin)

 

數植轉換:將0~1023轉換為0~255, 也可轉換為255~0

map(sensorValue, 0, 1023, 0, 255) 

.

延遲函式:以ms為單位

delay(2);

 

arrow
arrow
    文章標籤
    Arduino ADC AnaloginOutSerial
    全站熱搜

    門外漢 發表在 痞客邦 留言(0) 人氣()