아두이노

Nextion + 아두이노 통신 명령어 종합 가이드 – 텍스트, 버튼, 페이지 전환까지 완벽 정리

게임교수 2025. 4. 19. 17:43
반응형

Nextion + 아두이노 통신 명령어 종합 가이드 – 텍스트, 버튼, 페이지 전환까지 완벽 정리

Nextion HMI LCD는 직관적인 GUI를 만들 수 있는 강력한 터치 디스플레이입니다.
하지만 진짜 프로젝트에 활용하려면 아두이노 ↔ Nextion 간의 통신 명령어를 정확히 아는 게 중요하죠.
이 글에서는 실제로 사용하는 주요 명령어통신 포맷, 그리고 실전 예제 코드까지 정리해드립니다.

📌 모든 명령어는 끝에 반드시 붙여야 할 것

0xFF 0xFF 0xFF

Nextion LCD는 모든 명령어가 3개의 종료 바이트(0xFF)를 받아야 유효하므로, Serial.write(0xFF) × 3은 필수입니다.

📝 주요 명령어 정리

1. 텍스트 변경

t0.txt="Hello World"

2. 숫자 값 변경

n0.val=123

3. 버튼 속성 변경

b0.txt="ON"
b0.bco=63488    // 배경색 (빨강)
b0.pco=65535    // 글자색 (흰색)

4. 페이지 전환

page 1
page main

5. 그래픽 오브젝트 제어

z0.val=75       // 게이지
j0.val=50       // 슬라이더
x0.pic=2        // 이미지 변경

6. 시스템 명령어

dim=80          // 밝기 조절 (0~100)
clearscreen     // 전체 초기화
ref t0          // 객체 다시 그리기

7. 전역 변수 활용

x=5             // 변수 선언
get x           // 값 요청

🧭 터치 이벤트 – Nextion → 아두이노

버튼 눌렀을 때 아두이노가 받는 코드 예시:

65 00 01 FF FF FF
- `65`: 터치 이벤트 - `00`: 객체 ID - `01`: 눌림(1), 뗌(0) 👉 Nextion Editor에서 버튼에 `print "BTN1"` 명령을 넣어두면
42 54 4E 31 FF FF FF
(ASCII로 "BTN1")가 아두이노로 전송됩니다.

💻 실전 함수 예제 (아두이노 → Nextion)

void sendText(String obj, String txt) {
  Serial.print(obj + ".txt=\"" + txt + "\"");
  Serial.write(0xFF); Serial.write(0xFF); Serial.write(0xFF);
}

void changePage(String pageName) {
  Serial.print("page " + pageName);
  Serial.write(0xFF); Serial.write(0xFF); Serial.write(0xFF);
}

void setVal(String obj, int val) {
  Serial.print(obj + ".val=" + String(val));
  Serial.write(0xFF); Serial.write(0xFF); Serial.write(0xFF);
}

📡 통신 팁 & 트러블슈팅

  • 📏 RX → TX, TX → RX 교차 연결
  • 💥 Nextion TX는 5V TTL 호환, RX는 저항 분배로 3.3V 보호
  • 💬 명령어 끝에 0xFF 3개가 없으면 무반응 발생
  • ⏱ SoftwareSerial 쓰면 속도는 9600bps 권장

✅ 마무리

Nextion은 단순히 LCD 그 이상으로 완전한 터치 기반 UI 시스템입니다.
제대로 쓰기 위해서는 아두이노와 통신하는 명령 체계를 정확히 알아야 실전에서 오류 없이 사용 가능합니다.
이제 여러분도 원하는 데이터를 띄우고, 터치로 장치를 제어하는 고급형 아두이노 프로젝트를 시작해보세요!


Nextion + Arduino 통신 종합편 | 작성자: YT

반응형