STM32 MCU는 키패드를 읽고 LCD를 직접 제어합니다 — 모든 디스플레이 및 입력 로직은 MCU에서 실행됩니다
Qualcomm MPU는 Debian Linux를 실행하고 Wi-Fi, Python 및 클라우드 연결을 처리합니다
이 섹션에서는 MCU만 프로그래밍됩니다 — Linux 측은 유휴 상태로 유지됩니다. 이후 섹션에서는 Bridge를 통해 두 프로세서가 함께 작동하는 방법을 보여줍니다.
키를 누르면 LCD에 표시됩니다. *를 누르면 화면이 지워집니다.
/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-keypad-lcd */#include <DIYables_Keypad.h>#include <DIYables_LCD_I2C.h>constint ROW_NUM = 4;constint COLUMN_NUM = 3;char keys[ROW_NUM][COLUMN_NUM] = { { '1', '2', '3' }, { '4', '5', '6' }, { '7', '8', '9' }, { '*', '0', '#' }};byte pin_rows[ROW_NUM] = { 9, 8, 7, 6 };byte pin_column[COLUMN_NUM] = { 5, 4, 3 };DIYables_Keypadkeypad = DIYables_Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);DIYables_LCD_I2C lcd(0x27, 16, 2);int cursorColumn = 0;voidsetup() {Serial.begin(115200);delay(1500); lcd.init(); lcd.backlight(); lcd.print("Keypad LCD Ready");Serial.println("Arduino UNO Q Keypad + LCD ready");}voidloop() {char key = keypad.getKey();if (key) {Serial.print("Key pressed: ");Serial.println(key);if (key == '*') {// Clear LCD lcd.clear(); cursorColumn = 0; } else { lcd.setCursor(cursorColumn, 0); lcd.print(key); cursorColumn++;if (cursorColumn == 16) { lcd.clear(); cursorColumn = 0; } } }}
빠른 단계
Arduino UNO Q를 처음 사용하시나요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
연결: 배선도에 표시된 대로 3x4 키패드와 LCD I2C를 Arduino UNO Q MCU에 연결합니다.
Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
새 앱 만들기:Create New App 버튼을 클릭합니다.
앱에 이름을 지정합니다. 예: KeypadLcd
Create를 클릭하여 확인합니다.
스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다. 다른 파일은 기본값으로 유지합니다.
Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
Search for DIYables_Keypad created by DIYables.io and click the Install button.
My Apps/DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
DIYables_Keypad
DIYables_KeypadDIYables.io
The library is designed for Arduino, ESP32, ESP8266... to use with keypad such as 3x4, 4x4 keypad. It also works with Arduino Uno R4 WiFi/Minima
1.0.1
Install
More Info
Search for DIYables LCD I2C created by DIYables.io and click the Install button.
My Apps/DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
DIYables LCD I2C
DIYables LCD I2CDIYables.io
This library is designed for HD44780-based I2C LCD displays. It provides LiquidCrystal-compatible API plus helper functions (text alignment, progress bars, predefined custom characters). Supports multiple I2C buses (Wire, Wire1, Wire2) for advanced boards like Arduino Giga, Due, and ESP32. Compatible with all Arduino-based platforms including Arduino Uno, Mega, Nano, ESP32, ESP8266, STM32, and Raspberry Pi Pico.
/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-keypad-lcd */from arduino.app_utils import *import timedef loop(): result = Bridge.call("get_status")print(result)if result.startswith("Confirmed:"):print(f"Entry confirmed — clearing in 3 seconds...") time.sleep(3) result = Bridge.call("clear_lcd")print(result) time.sleep(0.5)App.run(user_loop=loop)
빠른 단계
연결: 배선도에 표시된 대로 3x4 키패드와 LCD I2C를 Arduino UNO Q에 연결합니다.
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
Arduino UNO Q에서 키패드와 LCD를 결합하여 많은 창의적인 프로젝트를 구축할 수 있습니다:
원격 PIN 코드 표시: 사용자가 키패드에 PIN을 입력하면 LCD에 나타나고 — #이 누르면 MPU는 입력된 PIN이 포함된 Telegram 경고를 받습니다
스마트 항목 로거: 모든 확인된 키패드 항목은 Linux MPU의 타임스탬프와 함께 기록되고 원격 모니터링을 위해 Telegram으로 전달됩니다
메시지 보드 표시: Python 측에서 Bridge를 통해 텍스트 문자열을 보내면 MCU가 LCD에 표시하고, 키패드를 사용하여 메시지를 순환할 수 있습니다
액세스 코드 검증: Python은 확인된 키패드 항목을 인증된 코드 목록과 비교하여 "액세스 허용" 또는 "거부"를 Telegram으로 보냅니다
다단계 입력 UI: LCD를 사용하여 사용자를 다단계 입력 시퀀스(예: 먼저 코드를 입력한 다음 값을 입력)로 안내합니다 — Python은 단계 상태를 추적합니다
자신을 도전해보세요
Arduino UNO Q의 키패드 및 LCD를 더 활용할 준비가 되셨나요? 이러한 챌린지를 시도해보세요:
쉬움: MCU 스케치를 수정하여 #이 눌리면 입력된 텍스트가 고정 암호와 일치하는지 여부에 따라 두 번째 LCD 행에 "CORRECT" 또는 "WRONG"을 표시합니다.
중급: Python에서 전송된 사용자 정의 메시지를 받아 LCD를 지우고 표시하는 display_message(String) Bridge 함수를 추가합니다 — Linux MPU가 원격으로 화면에 모든 내용을 쓸 수 있도록 합니다.
고급: 완전한 Telegram 제어 액세스 패널을 구축합니다: 사용자가 키패드에 PIN을 입력하면 MPU가 Bridge를 통해 유효성을 검사하고 Telegram 결과를 보내며, 올바르면 릴레이를 활성화합니다. Linux 측의 타임스탬프를 사용하여 모든 시도를 기록합니다.