from machine import Pin ,PWM,SoftI2C,I2C
from i2c_lcd import I2cLcd
from time import sleep
import utime
from servo import Servo
# Keypad
KEY_UP= const(0)
KEY_DOWN = const(1)
keys = [['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']]
# Pin names for Pico
cols = [18,23,15,14]
rows = [2,4,5,19]
# set pins for rows as outputs
row_pins = [Pin(pin_name, mode=Pin.OUT) for pin_name in rows]
# set pins for cols as inputs
col_pins = [Pin(pin_name, mode=Pin.IN, pull=Pin.PULL_DOWN) for pin_name in cols]
def init():
for row in range(0,4):
for col in range(0,4):
row_pins[row].value(0)
def scan(row, col):
""" scan the keypad """
# set the current column to high
row_pins[row].value(1)
key = None
# check for keypressed events
if col_pins[col].value() == KEY_DOWN:
key = KEY_DOWN
if col_pins[col].value() == KEY_UP:
key = KEY_UP
row_pins[row].value(0)
# return the key state
return key
#Servo
servo=Servo(pin=12)
led1=Pin(32,Pin.OUT)
led2=Pin(25,Pin.OUT)
led3=Pin(27,Pin.OUT)
while True:
for row in range(4):
for col in range(4):
key = scan(row, col)
if key == KEY_DOWN:
if keys[row][col] == '1' :
led1.value(1),led2.value(0),led3.value(0)
servo.move(180)
if keys[row][col] == '2' :
led1.value(0),led2.value(1),led3.value(0)
servo.move(0)
if keys[row][col] == '3' :
led1.value(0),led2.value(0),led3.value(3)
servo.move(90)