# Complete project details at https://RandomNerdTutorials.com/micropython-timer-interrupts-ep32-esp8266/
from machine import Pin, Timer
from time import sleep
# LEDs
red_led_pin = 12
red_led = Pin(red_led_pin, Pin.OUT)
yellow_led_pin = 13
yellow_led = Pin(yellow_led_pin, Pin.OUT)
# Callback function for the red timer
def toggle_red_led(timer):
red_led.value(not red_led.value()) # Toggle the LED state (ON/OFF)
print('red LED is: ', red_led.value())
# Callback function for the yellow timer
def toggle_yellow_led(timer):
yellow_led.value(not yellow_led.value()) # Toggle the LED state (ON/OFF)
print('yellow LED is: ', yellow_led.value())
# Create periodic timers
red_timer = Timer(1)
yellow_timer = Timer(2)
# Init the timers
red_timer.init(mode=Timer.PERIODIC, period=500, callback=toggle_red_led) # Timer repeats every 0.5 second
yellow_timer.init(mode=Timer.PERIODIC, period=2000, callback=toggle_yellow_led) # Timer repeats every 2 seconds
try:
# Main loop (optional)
while True:
print('Main Loop is running')
sleep(2)
except KeyboardInterrupt:
# Keyboard interrupt occurred, deinitialize the timers
red_timer.deinit()
yellow_timer.deinit()
print('Timers deinitialized')
# Turn off the LEDs
yellow_led.value(0)
red_led.value(0)