import utime
import math
import machine
from machine import Pin
from machine import I2C
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
I2C_ADDR = 0x27 # Decimal 39
I2C_NUM_ROWS = 2
I2C_NUM_COLS = 16
SDA_PIN = 0
SCL_PIN = 1
MOVE_PIN = 2
SELECT_PIN = 3
menu_settings = [
">EXIT ",
">ALARM ",
">DATE, TIME ",
">DISPLAY MODE "
]
menu_set_alarm = [
">Set weekday ",
">Set hour ",
">Set minute "
">Set melody "
]
counter = 0
menumber = 0
menumber1 = 0
menumber2 = 0
i2c = I2C(0, sda=machine.Pin(SDA_PIN), scl=machine.Pin(SCL_PIN), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)
button_move = Pin(MOVE_PIN, Pin.IN, Pin.PULL_UP)
button_select = Pin(SELECT_PIN, Pin.IN, Pin.PULL_UP)
print("Running Menu demo")
utime.sleep(2)
def but_move_pressed():
pom = button_move.value()
if (pom == False):
return True
else:
return False
def but_select_pressed():
pom = button_select.value()
if (pom == False):
return True
else:
return False
def lprint(msg, x, y):
lcd.move_to(x, y)
lcd.putstr(msg)
def set_alarm():
lcd.clear()
lprint("SET ALARM:", 0, 0)
lprint(">>Alarm", 0, 1)
while True:
if (but_select_pressed()):
break
def set_date_time():
lcd.clear()
lprint("SET DATE TIME: ", 0, 0)
lprint(">>Date time", 0, 1)
while True:
if (but_select_pressed()):
break
def set_display_mode():
lcd.clear()
lprint("SET DISPLAY: ", 0, 0)
lprint(">>Display mode", 0, 1)
while True:
if (but_select_pressed()):
break
def set_exit_settings():
pass
def settings():
global menumber
lcd.clear()
lprint("SETINGS: ", 0, 0)
menumber = 1
while True:
print("menumber: ", menumber, menu_settings[menumber - 1])
lprint(menu_settings[menumber - 1], 0, 1)
if (but_move_pressed()):
print("MOVE pressed!")
menumber = menumber + 1
if (menumber > 4):
menumber = 1
utime.sleep(0.1)
if (but_select_pressed()):
print("SELECT pressed!")
if (menumber == 1):
# menumber = 0
utime.sleep(0.5)
break
elif (menumber == 2):
set_alarm()
elif (menumber == 3):
set_date_time()
elif (menumber == 4):
set_display_mode()
utime.sleep(0.1)
menumber = 0
# break
while True:
if (but_select_pressed()):
utime.sleep(0.5)
print("SELECT pressed!")
settings()
else:
counter = counter + 1
lcd.clear()
lprint("{}".format(counter), 0, 0)
utime.sleep(0.1)