import neopixel import time import sys import select from machine import Pin, SPI #neopixel ws_pin = 2 led_num = 10 BRIGHTNESS = 0.2 # Adjust the brightness (0.0 - 1.0) led_strip = neopixel.NeoPixel(Pin(ws_pin), led_num) push_button = Pin(24, Pin.IN, Pin.PULL_UP) buzzer = Pin(3, Pin.OUT) pushbutton_pressed = 0 blink_interrupted = 0 def set_neopixel_brightness(color): r, g, b = color r = int(r * BRIGHTNESS) g = int(g * BRIGHTNESS) b = int(b * BRIGHTNESS) return (r, g, b) def set_neopixel_color(r,g,b): color = (r,g,b) color = set_neopixel_brightness(color) led_strip.fill(color) led_strip.write() set_neopixel_color(0,0,0) def loop_neopixel(): # Display red color = (255, 0, 0) # Red color color = set_neopixel_brightness(color) led_strip.fill(color) led_strip.write() time.sleep(1) # Display green color = (0, 255, 0) # Green color color = set_neopixel_brightness(color) led_strip.fill(color) led_strip.write() time.sleep(1) # Display blue color = (0, 0, 255) # Blue color color = set_neopixel_brightness(color) led_strip.fill(color) led_strip.write() time.sleep(1) neopix_loop_dot_pos = 0 def neopixel_loop_dot(): global neopix_loop_dot_pos color = (255, 0, 0) black = (0, 0, 0) color = set_neopixel_brightness(color) led_strip[neopix_loop_dot_pos] = black neopix_loop_dot_pos += 1 if neopix_loop_dot_pos > 9: neopix_loop_dot_pos = 0 led_strip[neopix_loop_dot_pos] = color led_strip.write() time.sleep(0.2) def lightup_led(index, color): led_strip[index] = color led_strip.write() def blink_and_beep(times): global pushbutton_pressed, blink_interrupted blink_delay = 0.2 #insert beep buzzer.value(1) for i in range(0, times): set_neopixel_color(255, 0, 0) buzzer.value(0) time.sleep(blink_delay) set_neopixel_color(0, 0, 0) buzzer.value(1) time.sleep(blink_delay) if pushbutton_pressed == 1: pushbutton_pressed = 0 blink_interrupted = 1 i = times buzzer.value(0) return buzzer.value(0) ten_min_timer = 0 ten_min_timer_led_index = 11 def count_10_min(): global ten_min_timer, ten_min_timer_led_index, pushbutton_pressed, blink_interrupted red = (255, 0, 0) red = set_neopixel_brightness(red) green = (0, 255, 0) green = set_neopixel_brightness(green) if ten_min_timer_led_index == 11: return if (ten_min_timer % 60) == 0: if ten_min_timer_led_index == 10: pushbutton_pressed = 0 blink_and_beep(60) if blink_interrupted == 1: blink_interrupted = 0 return ten_min_timer_led_index = 11 led_strip[0] = green led_strip[2] = green led_strip[4] = green led_strip[6] = green led_strip[8] = green led_strip.write() return lightup_led(ten_min_timer_led_index, red) ten_min_timer_led_index += 1 ten_min_timer += 1 def button_callback(push_button): global ten_min_timer, ten_min_timer_led_index, pushbutton_pressed pushbutton_pressed = 1 ten_min_timer = 0 ten_min_timer_led_index = 0 set_neopixel_color(0,0,0) count_10_min() set_neopixel_color(0,0,0) push_button.irq(trigger=Pin.IRQ_FALLING, handler=button_callback) green = (0, 255, 0) green = set_neopixel_brightness(green) led_strip[0] = green led_strip[2] = green led_strip[4] = green led_strip[6] = green led_strip[8] = green led_strip.write() while True: count_10_min() time.sleep(0.01)