RP2350 터치 LCD 타이머를 승마기기 운전시간 제어에 적용했습니다. 화면에서 운전시간을 설정하고, 인버터 실제 운전이 확인된 순간부터 MM:SS 카운트다운을 시작합니다. 설정시간이 끝나면 자동으로 STOP 명령을 보내고 실제 정지 상태를 확인합니다.

  • 승마기기 모드 설정
  • 카운트다운
  • 자동 정지

RP2350 터치 LCD에서 운전시간을 설정하고 카운트다운이 진행되는 장면

RP2350 터치 LCD에서 운전시간을 설정하고 카운트다운이 진행되는 장면

RP2350 터치 LCD 타이머 적용 결과

이번 승마기기 운전시간 제어 화면에는 다음 기능을 적용했습니다.

기능적용 내용
운전시간 설정10초~30분 범위에서 -1분, -10초, +10초, +1분 조절
시간 표시남은 운전시간을 MM:SS로 표시
카운트다운 시작START 터치가 아니라 인버터 RUN 피드백과 실제 주파수 확인 후 시작
설정 잠금운전 중·시작 확인 중·정지 확인 중에는 시간 변경 차단
자동 정지설정시간 만료 시 STOP 명령 전송 후 실제 정지 상태 확인

복잡하게 있는데, 결국 TFT LCD 시간 설정은 실제 환경을 고려해 10초 단위와 1분 단위로 나누었습니다. -10S, +10S 버튼으로 짧게 조절하고, -1M, +1M 버튼으로 긴 시간을 빠르게 변경할 수 있습니다.

READY 상태에서 운전시간 03 설정한 RP2350 터치 LCD 타이머 화면

READY 상태에서 운전시간 03

설정한 RP2350 터치 LCD 타이머 화면

START를 누르고 받는 피드백

장비 제어용 RP2350 카운트다운 타이머는 START 버튼을 누른 시각과 실제 모터가 움직이기 시작한 시각을 구분해야 합니다.

인버터 RUN 상태와 실제 주파수가 확인된 순간의 millis 값을 운전 시작 시각으로 저장하는 코드

인버터 RUN 상태와 실제 주파수가 확인된 순간의 millis 값을 운전 시작 시각으로 저장하는 코드

이런 식으로 하면 안 됩니다.

START 터치
→ 즉시 카운트다운 시작
→ 인버터 운전 여부 확인

버튼 입력과 실제 운전 사이에는 RS485 통신과 인버터 응답 과정이 있습니다. START 터치부터 시간을 줄이면 모터가 아직 움직이지 않은 시간까지 총 운전시간에 포함될 수 있습니다.

이렇게 해야 합니다.

START 터치
→ 운전 명령 전송
→ RUN 상태와 실제 주파수 확인
→ 확인된 시각을 운전 시작 시각으로 저장
→ 카운트다운 시작

운전 피드백이 정해진 시간 안에 확인되지 않으면 카운트다운을 시작하지 않고 STOP 명령을 보냅니다. 화면의 START 입력만 믿지 않고 실제 장비 상태를 확인하는 이유입니다.

delay 대신 millis 경과시간으로 계산

delay 방식은 대기하는 동안 화면 갱신, 터치 입력과 RS485 통신 처리에 방해됩니다. 그래서 이렇게 해줍니다.

경과시간 = 현재 millis - 실제 운전 시작 millis
남은시간 = 설정 운전시간 - 경과시간

millis 차이로 경과시간과 남은 시간을 계산해 초 단위로 표시하는 코드

millis 차이로 경과시간과 남은 시간을 계산해 초 단위로 표시하는 코드

시간을 기다리는 대신 실제 경과시간을 계산하므로, 카운트다운 중에도 화면과 통신 처리를 계속 실행할 수 있습니다. 계산 결과는 초 단위로 바꾸어 LCD의 MM:SS 영역에 표시합니다.

운전 중에 설정 시간을 바꿀 수 없습니다.

승마기기가 움직이는 동안 시간 설정을 허용하면 현재 운전의 종료 시각이 바뀔 수 있습니다. 여러 단계로 속도를 전환하는 운전에서는 단계별 기준 시간도 함께 흔들릴 수 있습니다.

운전 중·시작 확인 중·정지 확인 중에는 시간 변경 입력을 차단하는 코드

운전 중·시작 확인 중·정지 확인 중에는 시간 변경 입력을 차단하는 코드

한 번 운전을 시작하면 처음 확정한 총 운전시간을 끝까지 유지합니다. 다음 운전시간은 장비가 READY 상태로 돌아온 뒤 변경합니다. 그래서 다음 상태에서는 시간 조절 입력을 차단했습니다.

  • 인버터 운전이 확인된 RUNNING 상태
  • START 명령 후 운전 피드백을 기다리는 상태
  • STOP 명령 후 실제 정지를 확인하는 상태

RUNNING 상태에서 05 카운트다운이 진행 중인 RP2350 터치 LCD 타이머 화면

RUNNING 상태에서 05

카운트다운이 진행 중인 RP2350 터치 LCD 타이머 화면

RP2350 타이머에서 확인한 문제와 해결 방법

이렇게 하면 안 됩니다발견될 수 있는 문제이렇게 해야 합니다
START 터치 즉시 카운트다운모터가 움직이기 전 시간까지 포함RUN 피드백과 실제 주파수 확인 후 시작
delay(1000)으로 1초씩 감소화면·통신 처리가 늦어지고 시간이 밀릴 수 있음millis() 차이로 실제 경과시간 계산
운전 중 시간 변경 허용종료 시각과 단계 전환 기준이 바뀜운전·시작 확인·정지 확인 중 설정 잠금
00:00을 실제 정지로 간주감속 중인 장비를 정지 완료로 표시할 수 있음RUN 해제와 실제 주파수로 정지 확인
통신 응답 없이 계속 운전 처리인버터 상태를 확인하지 못한 채 타이머가 진행됨피드백 시간 초과 시 STOP 명령 전송

RTC 없이도 운전시간 타이머를 만들 수 있나요?

운전시간과 남은 시간을 재는 산업용 장비 타이머 UI에는 RTC가 반드시 필요하지 않습니다. millis()는 전원이 켜진 뒤 얼마나 시간이 지났는지를 계산하는 데 사용할 수 있습니다.

현재 날짜와 시각을 표시하거나 전원이 꺼진 동안의 시간까지 기록해야 할 때는 RTC 또는 별도의 시간 기준을 검토해야 합니다. 이번 기능은 현재 시각을 보여주는 시계가 아니라, 승마기기의 한 회 운전시간을 제어하는 카운트다운 타이머입니다.

RP2350 터치 LCD 타이머 정리

RP2350 터치 LCD 타이머에서 중요한 것은 화면의 숫자만 1초씩 줄이는 기능이 아닙니다.

  • 터치 LCD에서 총 운전시간을 설정합니다.
  • 인버터 RUN 피드백과 실제 주파수가 확인된 순간부터 시간을 셉니다.
  • millis() 경과시간으로 남은 시간을 계산합니다.
  • 운전 중에는 시간 설정을 잠급니다.
  • 시간 만료 후 STOP 명령과 실제 정지 확인을 구분합니다.

장비 제어용 타이머는 버튼 입력, 실제 운전 피드백, 카운트다운, 자동 정지 확인이 하나의 흐름으로 연결되어야 합니다.

문의