산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 우노로 1.17인치 TFT LCD에 이미지 표시하기 - SD 카드 활용

부품 및 소모품

부품 수량
아두이노 우노 (Arduino UNO) 1
1.17인치 LCD/TFT 화면 1
SD 카드 1

앱 및 온라인 서비스

프로젝트 소개

이 글에서는 아두이노로 TFT 화면에 이미지를 표시하는 방법을 보여드립니다. 아래 튜토리얼을 읽거나 유튜브 영상을 시청하세요.

배선도

아두이노 우노로 1.17인치 TFT LCD에 이미지 표시하기 - SD 카드 활용
아두이노 우노와 1.17인치 TFT LCD 연결도
TFT 핀 아두이노 핀
5V (LCD) 5V
MISO (LCD) 핀 12
SCK (LCD) 핀 13
MOSI (LCD) 핀 11
LCD CS (LCD) 핀 10
SD CS (LCD) 핀 4
D/C (LCD) 핀 9
RESET (LCD) 핀 8
BL (LCD) 핀 8 (또는 5V로 백라이트 항상 켬)
GND (LCD) GND

SD 카드 이미지 준비사항

아두이노 우노로 1.17인치 TFT LCD에 이미지 표시하기 - SD 카드 활용
SD 카드에 arduino.bmp 파일 배치 예시

아두이노 코드

아래 코드를 복사해 아두이노에 업로드하세요.

실행 결과

아두이노 IDE의 시리얼 모니터를 열면 .bmp 이미지가 TFT 화면에 표시됩니다. 또는 영상으로 결과를 확인하세요.

아두이노 우노로 1.17인치 TFT LCD에 이미지 표시하기 - SD 카드 활용
TFT 화면에 표시된 이미지

코드

아두이노 우노로 TFT 화면에 이미지 표시하기 스케치

// CreaTechWeb: Displaying an image on a TFT screen with arduino
// https://createchweb.com/displaying-an-image-on-a-tft-screen-with-arduino/
#include 
#include 
#include  // 아두이노 LCD 라이브러리

// 우노용 핀 정의
#define sd_cs 4
#define lcd_cs 10
#define dc 9
#define rst 8

// 레오나르도용 핀 정의 (주석 처리됨)
// #define sd_cs 8
// #define lcd_cs 7
// #define dc 0
// #define rst 1

TFT TFTscreen = TFT(lcd_cs, dc, rst);
PImage logo; // 화면에 그릴 이미지 변수

void setup() {
  TFTscreen.begin();
  TFTscreen.background(255, 255, 255); // 흰색 배경
  TFTscreen.stroke(0, 0, 255); // 파란색 텍스트
  TFTscreen.println();
  TFTscreen.println(F("Arduino TFT Bitmap Example"));
  TFTscreen.stroke(0, 0, 0); // 검은색 텍스트
  TFTscreen.println(F("Open serial monitor"));
  TFTscreen.println(F("to run the sketch"));
  
  Serial.begin(9600);
  while (!Serial) { } // 네이티브 USB 포트용 대기
  
  TFTscreen.background(255, 255, 255);
  
  Serial.print(F("Initializing SD card..."));
  if (!SD.begin(sd_cs)) {
    Serial.println(F("failed!"));
    return;
  }
  Serial.println(F("OK!"));
  
  TFTscreen.begin();
  TFTscreen.background(255, 255, 255);
  
  logo = TFTscreen.loadImage("arduino.bmp");
  if (!logo.isValid()) {
    Serial.println(F("error while loading arduino.bmp"));
  }
}

void loop() {
  if (!logo.isValid()) return; // 이미지 로드 실패 시 아무것도 안 함
  
  Serial.println(F("drawing image"));
  
  // 이미지가 화면 밖으로 나가지 않도록 랜덤 위치 계산
  int x = random(TFTscreen.width() - logo.width());
  int y = random(TFTscreen.height() - logo.height());
  
  TFTscreen.image(logo, x, y); // 이미지 그리기
  delay(1500); // 1.5초 대기 후 다시 그리기
}

코드 설명

주의사항

제조공정

  1. 아두이노 나노 비행 시뮬레이터 2020 컨트롤 패널 – LCD & CDI 디스플레이
  2. 아두이노 실시간 시계로 이슬람 기도 시간 알림 장치 만들기
  3. 아두이노 2.4″ TFT LCD 실드에 SD카드 BMP 이미지 표시하기
  4. 아두이노 우노와 ATtiny85로 만드는 휴대용 POV(잔상) 디스플레이
  5. 아두이노 우노로 8×8 LED 매트릭스 마스터하기: 단계별 가이드
  6. 아두이노 우노와 1Sheeld로 만드는 4x4x4 LED 큐브 – 인터랙티브 LED 프로젝트
  7. 아두이노 GPS 실드와 TFT 터치스크린으로 실시간 위치 표시하기
  8. 아두이노 우노와 블루투스로 RC카 원격 제어하기: 단계별 가이드
  9. DS1302 RTC와 아두이노 우노로 만드는 신뢰할 수 있는 알람 시계
  10. 아두이노 우노로 25kHz 4핀 PWM 팬 제어하기 - 제작, 코드 및 테스트