from machine import Pin, I2C
import ssd1306
import utime
# ESP32 Pin assignment
i2c = I2C(0, scl=Pin(9), sda=Pin(8))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
oled.text('Hello, Wokwi!', 10, 10)
oled.show()
print("Hello, ESP32-S3!")
keyMatrix = [
[ "F1", "F2", "F3"],
[ "Left", "Up", "F4"],
[ "Down", "*", "Right"]
]
colPins = [7,15,16]
rowPins = [6,5,4]
row = []
column = []
for item in rowPins:
row.append(machine.Pin(item,machine.Pin.OUT))
for item in colPins:
column.append(machine.Pin(item,machine.Pin.IN,machine.Pin.PULL_DOWN))
key = '0'
def scanKeypad():
global key
for rowKey in range(5):
row[rowKey].value(1)
for colKey in range(4):
if column[colKey].value() == 1:
key = keyMatrix[rowKey][colKey]
row[rowKey].value(0)
return(key)
row[rowKey].value(0)
def printKey():
key=scanKeypad()
if key is not None:
print("Key pressed is:{}".format(key))
utime.sleep(0.2)
while True:
printKey()
esp:0
esp:1
esp:2
esp:3
esp:4
esp:5
esp:6
esp:7
esp:8
esp:9
esp:10
esp:11
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:20
esp:21
esp:35
esp:36
esp:37
esp:38
esp:39
esp:40
esp:41
esp:42
esp:45
esp:46
esp:47
esp:48
esp:3V3.1
esp:3V3.2
esp:RST
esp:5V
esp:GND.1
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:GND.4
oled1:GND
oled1:VCC
oled1:SCL
oled1:SDA
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
btn5:1.l
btn5:2.l
btn5:1.r
btn5:2.r
btn6:1.l
btn6:2.l
btn6:1.r
btn6:2.r
btn7:1.l
btn7:2.l
btn7:1.r
btn7:2.r
btn8:1.l
btn8:2.l
btn8:1.r
btn8:2.r
btn9:1.l
btn9:2.l
btn9:1.r
btn9:2.r