728x90

LCD, OLED, LED 매트릭스는 각각 다른 특성과 용도를 가진 디스플레이 기술입니다. 아두이노와의 연결 방법을 이해하면 이들 디스플레이를 다양한 프로젝트에 활용할 수 있습니다. 이번 글에서는 LCD, OLED, LED 매트릭스의 종류와 아두이노와의 연결 방법에 대해 알아보겠습니다.

1. LCD (Liquid Crystal Display)

1.1. 종류

  • 16x2 LCD: 가장 일반적인 LCD로, 16자 x 2행을 표시할 수 있습니다. 캐릭터 기반으로 텍스트를 표시하는 데 사용됩니다.
  • 20x4 LCD: 20자 x 4행을 표시할 수 있는 LCD로, 보다 많은 정보를 표시할 수 있습니다.
  • LCD 128x64: 그래픽 LCD로, 128x64 픽셀의 해상도를 갖추고 있어 이미지와 그래픽을 표시할 수 있습니다.

1.2. 아두이노 연결

16x2 LCD 연결 방법

필요한 재료

  • 16x2 LCD
  • 아두이노 보드 (예: Arduino Uno)
  • 10kΩ 저항 (대개는 가변 저항)
  • 점퍼 와이어

회로 구성

  1. 전원 연결
    • LCD VCC -> 아두이노 5V
    • LCD GND -> 아두이노 GND
  2. 컨트롤 핀 연결
    • LCD RS -> 아두이노 디지털 핀 12
    • LCD E -> 아두이노 디지털 핀 11
  3. 데이터 핀 연결
    • LCD D4 -> 아두이노 디지털 핀 10
    • LCD D5 -> 아두이노 디지털 핀 9
    • LCD D6 -> 아두이노 디지털 핀 8
    • LCD D7 -> 아두이노 디지털 핀 7
  4. 대조 조정
    • LCD V0 (대조) -> 가변 저항의 가운데 핀
    • 가변 저항의 두 다른 핀을 5V와 GND에 연결

코드 예제

#include <LiquidCrystal.h>

// LCD 핀 설정
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

void setup() {
  lcd.begin(16, 2); // LCD의 크기 설정
  lcd.print("Hello, World!"); // LCD에 메시지 출력
}

void loop() {
  // 메인 루프에서 코드 작성
}

2. OLED (Organic Light Emitting Diode)

2.1. 종류

  • 128x64 OLED: 128x64 픽셀의 해상도를 가진 작은 OLED 화면으로, 텍스트와 간단한 그래픽을 표시하는 데 사용됩니다.
  • 128x32 OLED: 128x32 픽셀의 해상도를 가진 OLED 화면으로, 보다 작은 화면을 제공하지만 여전히 많은 정보를 표시할 수 있습니다.

2.2. 아두이노 연결

128x64 OLED 연결 방법

필요한 재료

  • 128x64 OLED
  • 아두이노 보드 (예: Arduino Uno)
  • 점퍼 와이어

회로 구성

  1. 전원 연결
    • OLED VCC -> 아두이노 5V
    • OLED GND -> 아두이노 GND
  2. I2C 연결
    • OLED SDA -> 아두이노 A4 (SDA)
    • OLED SCL -> 아두이노 A5 (SCL)

코드 예제

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// OLED 디스플레이의 크기와 I2C 주소 설정
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET    -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // 디스플레이 초기화
  if(!display.begin(SSD1306_I2C_ADDRESS, 0x3D)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.print(F("Hello, OLED!"));
  display.display();
}

void loop() {
  // 메인 루프에서 코드 작성
}

3. LED 매트릭스

3.1. 종류

  • 8x8 LED 매트릭스: 8x8 픽셀로 구성된 기본적인 LED 매트릭스. 단순한 그래픽 및 텍스트 표시.
  • 16x16 LED 매트릭스: 16x16 픽셀로 구성된 더 큰 LED 매트릭스. 더 많은 정보와 그래픽을 표시할 수 있습니다.

3.2. 아두이노 연결

8x8 LED 매트릭스 연결 방법

필요한 재료

  • 8x8 LED 매트릭스
  • 아두이노 보드 (예: Arduino Uno)
  • MAX7219 드라이버 모듈 (LED 매트릭스 제어용)
  • 점퍼 와이어

회로 구성

  1. 전원 연결
    • LED 매트릭스 VCC -> 아두이노 5V
    • LED 매트릭스 GND -> 아두이노 GND
  2. MAX7219 연결
    • MAX7219 VCC -> 아두이노 5V
    • MAX7219 GND -> 아두이노 GND
    • MAX7219 DIN -> 아두이노 디지털 핀 11
    • MAX7219 CS -> 아두이노 디지털 핀 10
    • MAX7219 CLK -> 아두이노 디지털 핀 13

코드 예제

#include <LedControl.h>

// MAX7219 핀 설정
#define DATA_IN  11
#define CLK       13
#define LOAD      10
#define MAX_DEVICES 1

LedControl lc = LedControl(DATA_IN, CLK, LOAD, MAX_DEVICES);

void setup() {
  for (int i = 0; i < MAX_DEVICES; i++) {
    lc.shutdown(i, false);       // Wake up displays
    lc.setIntensity(i, 8);        // Set brightness level (0 is min, 15 is max)
    lc.clearDisplay(i);          // Clear display register
  }
}

void loop() {
  // 예: LED 매트릭스에 패턴을 표시
  lc.setLed(0, 0, 0, true); // (디바이스, 열, 행, 상태)
  delay(500);
  lc.setLed(0, 1, 0, true);
  delay(500);
  lc.setLed(0, 0, 0, false);
  lc.setLed(0, 1, 0, false);
  delay(500);
}

결론

LCD, OLED, LED 매트릭스는 각각의 장점과 특성을 가지며, 아두이노와의 연결은 비교적 간단합니다. LCD는 텍스트 기반의 정보 표시에 적합하며, OLED는 더 높은 해상도와 그래픽 표현을 지원합니다. LED 매트릭스는 시각적인 패턴과 정보를 표시하는 데 유용합니다. 이러한 디스플레이 기술을 활용하여 다양한 프로젝트와 응용을 구현할 수 있습니다.

728x90
반응형

+ Recent posts