update some code about PWM

This commit is contained in:
Gary Gan 2025-01-21 20:36:35 +08:00
parent 37c2a3f83b
commit 731180a3f0
4 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,17 @@
from machine import Pin, PWM
from time import sleep
outPin = 16
analogOut = PWM(Pin(outPin))
analogOut.freq(1000)
# 0 off // 65535 full on
# this means 3.3v is devided by 65535, so you can output
# continuous voltage
analogOut.duty_u16(0)
while True:
myVoltage = float(input('What Voltage Would You Like? '))
pwmVal = int((myVoltage / 3.3) * 65535)
analogOut.duty_u16(pwmVal)

Binary file not shown.

16
dimmable_LED.py Normal file
View File

@ -0,0 +1,16 @@
from machine import PWM, Pin
from time import sleep
outPin = 16
analogeOutput = PWM(Pin(outPin))
analogeOutput.freq(1000)
while True:
for i in range(0, 65535, 1000):
analogeOutput.duty_u16(i)
sleep(.1)
for i in range(65535, 0, -1000):
analogeOutput.duty_u16(i)
sleep(.1)

View File

@ -0,0 +1,16 @@
from machine import PWM, ADC, Pin
from time import sleep
input_pin = 28
output_pin = 16
analog_input = ADC(Pin(input_pin))
analog_output = PWM(Pin(output_pin))
analog_output.freq(1000)
while True:
input_digits = analog_input.read_u16()
output_digits = input_digits - 240 if input_digits - 240 >= 0 else 0
analog_output.duty_u16(output_digits)
sleep(.1)