類比-電位器實驗讀取類比值-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
可以自由選擇有ADC的引腳

接線圖



程式碼


from machine import PinADCPWM
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 PinADCPWM
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 引腳具有 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(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)






留言

這個網誌中的熱門文章

使用PWM控制伺服馬達-micropython

DHT11+OLED+IFTTT+LINE-notity-micropython

BMP280氣壓,溫度模組-micropython