from machine import Pin, ADC
from utime import sleep
from machine import Pin
xAxis = ADC(Pin(27))
button = Pin(28,Pin.IN, Pin.PULL_UP)
#Left
led_1 = Pin(22, Pin.OUT)
led_5 = Pin(18, Pin.OUT)
led_8 = Pin(17, Pin.OUT)
led_ast = Pin(16, Pin.OUT)
#Right
led_A = Pin(26, Pin.OUT)
led_6 = Pin(19, Pin.OUT)
led_9 = Pin(20, Pin.OUT)
led_D = Pin(21, Pin.OUT)
Key_Down = const(1)
keys = [['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']]
columns = [9, 8, 7, 6]
rows = [13, 12, 11, 10]
row_pins = [Pin(pin_name, mode=Pin.OUT) for pin_name in rows]
column_pins = [Pin(pin_name, mode=Pin.IN, pull=Pin.PULL_DOWN) for pin_name in columns]
def scan(row, column):
row_pins[row].value(1)
key = None
if column_pins[column].value() == Key_Down:
key = keys[row][column]
row_pins[row].value(0)
return key
def scan_keypad():
for row in range(4):
for col in range(4):
key = scan(row, col)
if key:
return key
return None
def toggle_led(led_pin):
led_pin.value(not led_pin.value())
while True:
xValue = xAxis.read_u16()
xStatus = "middle"
pressed_key = scan_keypad()
if pressed_key:
if pressed_key == '1':
toggle_led(led_1)
elif pressed_key == 'A':
toggle_led(led_A)
elif pressed_key == '5':
toggle_led(led_5)
elif pressed_key == '6':
toggle_led(led_6)
elif pressed_key == '8':
toggle_led(led_8)
elif pressed_key == '9':
toggle_led(led_9)
elif pressed_key == 'D':
toggle_led(led_D)
elif pressed_key == '*':
toggle_led(led_ast)
print("X: " + str(xValue))