#仕様_
#Input:入力電圧によってPWMを可変
# 入力電圧によって出力電圧をFB
#Output:FET駆動用のPWMを出力
from machine import Pin, ADC, PWM # 入出力とアナログ入出力、PWM制御用モジュールを準備
import time # タイマーモジュールを準備
# 入力ピン設定
sw = Pin(17, Pin.IN, Pin.PULL_UP) # スイッチのピン番号を指定してswとして入力設定(プルアップ)
# アナログ入力ピン設定
adc = ADC(Pin(28)) # 使用するアナログ入力(ADC0〜2)の端子番号(26〜28)をadcに設定
# PWMピン設定
pwm = PWM(Pin(16 ,Pin.OUT)) # PWM出力ピン番号を指定してpwmとしてPWM出力設定
pwm.freq(1000) # PWM周波数を設定
# メイン処理 ---------------------------------------------------------
while True: # ずっと繰り返し
if sw.value(): # スイッチが押されてなければ
pwm.duty_u16(0) # PWM出力オフ(Duty比を0に設定)
else: # スイッチが押されていれば
adc_val = adc.read_u16() # アナログ入力(ADC)値を取得
adc_volt = (adc_val * 3.3) / 65536 # アナログ入力(ADC)値(16bit)を電圧(3.3V)に変換
print("adc_val = {:5d} adc_volt = {:5.2f}V".format(adc_val, adc_volt)) # 結果を表示する
pwm.duty_u16(adc_val) # アナログ入力(ADC)値をPWMのDuty比に設定(0〜65535)
time.sleep(0.1) # 待ち時間