# analog read on ADC0 (pin31), map and write to dimmed led
from machine import ADC, Pin, PWM
import utime
def map(val, in1, in2, out1, out2): # in > out mapping
# Figure out how 'wide' each range is
inSpan = in2 - in1
outSpan = out2 - out1
# Convert the in range into a 0-1 (float) range
valueScaled = (val-in1)/inSpan
# valueScaled = float(val-in1)/float(inSpan)
# Convert the 0-1 range into in the out range
return out1 + valueScaled * outSpan
# board config
measureAngle = ADC(26)
dimmed = PWM(Pin (15))
dimmed.freq(1000)
# cyclic
while True:
#read analog value and print it
angleBin = measureAngle.read_u16() # fullscale = 3V3
angleVal = map(angleBin, 430, 53000, 0, 100)
ledVal = 0.5*angleVal
ledBin = int(map(ledVal, 0, 100, 430, 53000))
print (angleBin, angleVal, ledVal, ledBin)
dimmed.duty_u16(ledBin)
utime.sleep (.5) # Ok to sleep for this read example !