i used this python script to read matrix 4x4 keypad data to raspberry pi
import RPi.GPIO as GPIO #raspberry pi
import time
# these GPIO pins are connected to the keypad RPI
L1 = 21
L2 = 23
L3 = 27
L4 = 29
C1 = 31
C2 = 33
C3 = 35
C4 = 37
# Initialize the GPIO pins
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(L1, GPIO.OUT)
GPIO.setup(L2, GPIO.OUT)
GPIO.setup(L3, GPIO.OUT)
GPIO.setup(L4, GPIO.OUT)
# Make sure to configure the input pins to use the internal pull-down resistors
GPIO.setup(C1, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(C2, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(C3, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(C4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
# It sends out a single pulse to one of the rows of the keypad
# and then checks each column for changes
# If it detects a change, the user pressed the button that connects the given line
# to the detected column
def readLine(line, characters):
GPIO.output(line, GPIO.HIGH)
if(GPIO.input(C1) == 1):
print(characters[0])
if(GPIO.input(C2) == 1):
print(characters[1])
if(GPIO.input(C3) == 1):
print(characters[2])
if(GPIO.input(C4) == 1):
print(characters[3])
GPIO.output(line, GPIO.LOW)
try:
while True:
# call the readLine function for each row of the keypad
readLine(L1, ["1","2","3","e"])
readLine(L2, ["4","5","6","r"])
readLine(L3, ["7","8","9","t"])
readLine(L4, ["q","0","w","y"])
time.sleep(0.2)
except KeyboardInterrupt:
print("\nApplication stopped!")
How can i create similar script for orange pi in armbian (in my case orange pi pc plus)?
it can by python or other language doesnt matter