from machine import Pin
import time
import _thread
button = Pin(14, Pin.IN, Pin.PULL_DOWN)
led = Pin(15, Pin.OUT)
# Global variable and lock
global button_pressed
button_pressed = False
lock = _thread.allocate_lock() # Create a lock
def button_thread():
global button_pressed
while True:
if button.value() == 1:
lock.acquire() # Manually acquire lock
button_pressed = True
lock.release() # Manually release lock
print("Set state of global button_pressed to true...")
time.sleep_ms(500)
_thread.start_new_thread(button_thread, ())
led.off()
while True:
global button_pressed
print("Checking state of global button_pressed...")
lock.acquire() # Manually acquire lock
if button_pressed:
led.on()
print("Cross street light on...")
time.sleep(5)
led.off()
print("Cross street light off...")
button_pressed = False
print("Set state of global button_pressed to false...")
lock.release() # Manually release lock
time.sleep_ms(2000)