類比-電位器實驗讀取類比值-micropython
類比-電位器實驗讀取類比值-micropython
ESP32 ADC 引腳默認為 12 位分辨率。這些引腳讀取 0 到 3.3V 之間的電壓,然後返回 0 到 4095 之間的值。可以在代碼上更改分辨率。例如,您可能只想使用 10 位分辨率來獲取 0 到 1023 之間的值,可以在ADC的函式裡設定。
ADC引腳
ESP32裡有哪幾支引腳可用ADC
GPIOs: 0, 2, 4, 12, 13, 14, 15,
25, 26, 27, 32, 33, 34, 35, 36,
and 39
25, 26, 27, 32, 33, 34, 35, 36,
and 39
可以自由選擇有ADC的引腳
程式碼
函式參考-micropython函式筆記本
from machine import Pin, ADC, PWM
from time import sleep
P = ADC(Pin(36))
P.atten(ADC.ATTN_11DB)
ADC.width(ADC.WIDTH_10BIT)
led = PWM(Pin(4), freq=5000)
while True:
P_val = P.read()
print(P_val)
led.duty(1023-P_val)
sleep(0.2)
匯入ADC和相關模組
from machine import Pin, ADC, PWM
from time import sleep
指定ADC的腳位和使用atten()設定電壓範圍
P = ADC(Pin(36))
P.atten(ADC.ATTN_11DB)
Atten() 方法可以採用以下參數:
ADC.ATTN_0DB——電壓:1.2V
ADC.ATTN_2_5DB——電壓:1.5V
ADC.ATTN_6DB——電壓:2.0V
ADC.ATTN_11DB——電壓:3.3V
ADC.ATTN_0DB——電壓:1.2V
ADC.ATTN_2_5DB——電壓:1.5V
ADC.ATTN_6DB——電壓:2.0V
ADC.ATTN_11DB——電壓:3.3V
默認情況下 ADC 引腳具有 12 位分辨率。想要獲取其他範圍內的值。可以使用 width() 方法更改分辨率,如下所示:
ADC.width(bit)
參數可以是以下參數之一:
ADC.WIDTH_9BIT:範圍 0 到 511
ADC.WIDTH_10BIT:範圍 0 到 1023
ADC.WIDTH_11BIT:範圍 0 到 2047
ADC.WIDTH_12BIT:範圍 0 到 4095
ADC.WIDTH_9BIT:範圍 0 到 511
ADC.WIDTH_10BIT:範圍 0 到 1023
ADC.WIDTH_11BIT:範圍 0 到 2047
ADC.WIDTH_12BIT:範圍 0 到 4095
ADC.width(ADC.WIDTH_10BIT)
使用PWM設定頻率,使LED能隨ADC的值改變亮度
led = PWM(Pin(4), freq=5000)
讀取 ADC值轉換PWM寫入值
while True:
P_val = P.read()
print(P_val)
led.duty(1023-P_val)---使訊號由小至大讀取
sleep(0.2)
留言
張貼留言