/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-keypad */import RPi.GPIOasGPIOimport time# Define keypad layoutKEYPAD = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ['*', 0, '#']]# Define GPIO pins for rows and columnsROWS = [4, 17, 27, 22]COLS = [5, 6, 13]# Initialize GPIOGPIO.setmode(GPIO.BCM)# Set up row pins as inputs with pull-up resistorsfor row_pin in ROWS:GPIO.setup(row_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)# Set up column pins as outputsfor col_pin in COLS:GPIO.setup(col_pin, GPIO.OUT)GPIO.output(col_pin, GPIO.HIGH)def get_key(): key = None# Scan each columnfor col_num, col_pin inenumerate(COLS):GPIO.output(col_pin, GPIO.LOW)# Check each rowfor row_num, row_pin inenumerate(ROWS):ifGPIO.input(row_pin) == GPIO.LOW: key = KEYPAD[row_num][col_num]# Wait for key releasewhileGPIO.input(row_pin) == GPIO.LOW: time.sleep(0.05)GPIO.output(col_pin, GPIO.HIGH)return keytry:whileTrue: pressed_key = get_key()if pressed_key isnotNone:print(f"Pressed: {pressed_key}") time.sleep(0.1)exceptKeyboardInterrupt:GPIO.cleanup()
라즈베리 파이 4x4 키패드 코드
/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-keypad */import RPi.GPIOasGPIOimport time# Define keypad layoutKEYPAD = [ [1, 2, 3, 'A'], [4, 5, 6, 'B'], [7, 8, 9, 'C'], ['*', 0, '#', 'D']]# Define GPIO pins for rows and columnsROWS = [4, 17, 27, 22]COLS = [5, 6, 13, 19]# Initialize GPIOGPIO.setmode(GPIO.BCM)# Set up row pins as inputs with pull-up resistorsfor row_pin in ROWS:GPIO.setup(row_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)# Set up column pins as outputsfor col_pin in COLS:GPIO.setup(col_pin, GPIO.OUT)GPIO.output(col_pin, GPIO.HIGH)def get_key(): key = None# Scan each columnfor col_num, col_pin inenumerate(COLS):GPIO.output(col_pin, GPIO.LOW)# Check each rowfor row_num, row_pin inenumerate(ROWS):ifGPIO.input(row_pin) == GPIO.LOW: key = KEYPAD[row_num][col_num]# Wait for key releasewhileGPIO.input(row_pin) == GPIO.LOW: time.sleep(0.05)GPIO.output(col_pin, GPIO.HIGH)return keytry:whileTrue: pressed_key = get_key()if pressed_key isnotNone:print(f"Pressed: {pressed_key}") time.sleep(0.1)exceptKeyboardInterrupt:GPIO.cleanup()
자세한 사용 방법
Raspberry Pi에 Raspbian 또는 다른 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하세요.
Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하세요.
라이브러리를 설치해야 할 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하세요.