from machine import Pin, ADC, PWM # 從machine模組引入Pin、ADC、PWM
import time # 引入time模組
adc = ADC(4) # 創建ADC物件,將GPIO4設定為輸入腳
ledpin = Pin(20, Pin.OUT) # 創建Pin物件,將GPIO20設定為輸出腳
LED = PWM(ledpin, 1000) # 創建PWM物件,將PWM輸出連接到GPIO20,頻率設定為1000Hz
while True: # 進入無限循環
try:
val = adc.read() # 讀取ADC的值
# val = val / 4 # 如果需要調整輸出值,可以使用此行,將讀取到的值除以4
LED.duty(val) # 設定PWM輸出的占空比為讀取到的ADC值
except ValueError: # 若發生故障,捕獲ValueError異常
val = 1023 # 將讀取值設定為最大值1023
LED.duty(val) # 設定PWM輸出的占空比為最大值1023
print('current adc value:', str(val)) # 顯示當前ADC值
time.sleep(0.5) # 暫停0.5秒,以免過度刷新
Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1