Arduino範例程式: AnaloginOutSerial
程式目的:將類比電壓轉換成數位訊號(ADC),並由Output輸出PWM,及透過串列通訊輸出數值。
ADC值:526-527
電源電壓量測值:4.6V
電壓解析度最小值:4.6V/1023=0.0045V
ADC輸入電壓量測值2.37V轉換為ADC數值: 2.37/0.0045=527(與ADC轉換的數值幾乎相符)
(黃色為ADC輸入電壓;藍色為5V電源電壓)
ADC轉換後的PWM值:131
PWM最小解析度:1/256=0.39062%
PWM量測值51.76%轉換為PWM數值:51.76/0.39062=132.51(與ADC轉換的PWM數值誤差1.51)
(黃色為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串列傳輸速率設定
UART輸出
讀取類比電壓並轉為數位訊號: 透過解析度10bit ADC將類比電壓轉換為數位訊號(如電壓0~5V->數位訊號0~1023階)
數植轉換:將0~1023轉換為0~255, 也可轉換為255~0
map(sensorValue, 0, 1023, 0, 255)
.
延遲函式:以ms為單位
留言列表