yzls_1 — ESP32 simulation

yzls_1

An interactive ESP32 circuit simulation you can run free in your browser on Velxio, by yzls.

Components

Sketch code

from machine import Pin,PWM,ADC
import time
adc=ADC(Pin(26),atten=ADC.ATTN_11DB)
led_pwm=PWM(Pin(2),freq=1000)
servo1=PWM(Pin(23),freq=50)
button=Pin(22,Pin.IN,Pin.PULL_UP)

#led
def led():
    led_pwm.duty_u16(adc.read_u16())
    time.sleep_ms(100)

#舵机
def servo():
    duty_u16=1638+(adc.read_u16()/65535)*6554
    servo1.duty_u16(int(duty_u16))
    time.sleep_ms(100)

#transform
status=1
last_state=1
while True:
    current=button.value()
    if current==0 and last_state==1:
        time.sleep_ms(20)
        if button.value()==0:
            status=(status+1)%3
            if status==0:
                print("transform to servo")
            elif status==1:
                print("deepsleep")
            else:
                print("transform to led")
    last_state=current
    time.sleep_ms(10)
    if status==0:
        servo()
    elif status ==1:
        led_pwm.duty_u16(0)
        servo1.duty_u16(0)
    else:
        led()
    time.sleep_ms(10)