#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
#define echo 12 // echo 12번핀
#define trig 14 // trig 14번핀
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int lastDistance = -1; // 초기값 설정
void setup() {
tft.begin();
tft.setRotation(1);
Serial.begin(115200);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
tft.fillScreen(ILI9341_BLACK); // 초기 화면 설정
tft.setTextSize(2);
tft.setTextColor(ILI9341_RED);
tft.setCursor(10, 10);
tft.print("Distance: ");
}
void loop() {
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int distance = pulseIn(echo, HIGH) / 29.4 / 2;
if (distance != lastDistance) { // 새로운 값이 이전 값과 다를 때만 업데이트
tft.setCursor(10, 10);
tft.setTextColor(ILI9341_BLACK); // 이전 값을 지우기 위해 검은색으로 덮어쓰기
tft.print("Distance: ");
tft.print(lastDistance);
tft.print("cm");
tft.setCursor(10, 10);
tft.setTextColor(ILI9341_RED); // 새로운 값을 빨간색으로 쓰기
tft.print("Distance: ");
tft.print(distance);
tft.print("cm");
lastDistance = distance; // 마지막 값을 업데이트
}
Serial.print(distance);
Serial.println("cm");
delay(500);
}