본문 바로가기
아두이노 러닝보드/아두이노 러닝보드 하드웨어설계

7 세그먼트 디스플레이 연결하기 💡

by 모빌리티키즈 2024. 12. 13.
728x90
반응형

안녕하세요, 여러분! 오늘은 Arduino 프로젝트에서 7 세그먼트 디스플레이(SSD)를 사용하는 방법에 대해 알아보겠습니다. 7 세그먼트 디스플레이는 디지털 시계, 전자 계량기, 계산기 및 숫자 정보를 표시하는 기타 전자 장치에서 널리 사용되는 전자 디스플레이 장치입니다.

7 세그먼트 디스플레이란?

7 세그먼트 디스플레이는 10진수를 표시하기 위한 단순하고 직관적인 방법입니다. 복잡한 도트 매트릭스 디스플레이의 대안으로, 각 자릿수를 7개의 세그먼트와 하나의 소수점(DP)으로 구성된 LED로 표현합니다. 이 키트에서는 4 자리 7 세그먼트 디스플레이를 사용하며, 다중화 기술을 사용하여 디스플레이를 제어합니다.

 

 

4 자리 7 세그먼트 디스플레이의 구조

4 자리 7 세그먼트 디스플레이에는 총 12개의 핀이 있습니다:

  • 8개의 핀은 각각의 세그먼트(A-G)와 소수점(DP)을 제어합니다.
  • 나머지 4개의 핀은 각 자릿수(D1-D4)를 나타냅니다.

디스플레이 모듈의 각 세그먼트는 다중화되어 동일한 양극 연결점을 공유합니다. 각 자릿수는 고유한 공통 음극 연결 지점이 있어 각 숫자를 독립적으로 켜거나 끌 수 있습니다. 다중화 기술을 통해 디스플레이를 제어하는 데 필요한 마이크로컨트롤러 핀 수를 줄일 수 있습니다.

멀티플렉싱이란?

멀티플렉싱은 디스플레이 장치에 한 번에 한 자리씩 표시하고 디스플레이 장치 간에 매우 빠르게 전환하는 기술입니다. 인간의 눈은 시력의 지속성 때문에 빠른 전환을 인식하지 못합니다. 따라서 모든 디스플레이가 동시에 켜져 있는 것처럼 보입니다.

예를 들어, 1234를 표시하려면:

  1. "1"에 해당하는 세그먼트를 켜고 첫 번째 자리(D1)를 켭니다.
  2. 그런 다음 "2"를 표시하고 첫 번째 자리를 끄고 두 번째 자리(D2)를 켭니다.
  3. 이 과정을 세 번째 자리(D3)와 네 번째 자리(D4)에서도 반복합니다.
  4. 디스플레이 간의 전환은 매우 빠르게(약 1ms 지연) 수행됩니다.

이 방법을 사용하면 마이크로컨트롤러 핀 수를 줄이고, 각 자릿수를 독립적으로 제어할 수 있습니다.

회로 연결

이제 4 자리 7 세그먼트 디스플레이를 Arduino에 연결하는 방법을 살펴보겠습니다:

  1. 세그먼트 핀 연결:
    • A, B, C, D, E, F, G, DP 핀을 각각 Arduino의 디지털 핀에 연결합니다.
  2. 자릿수 핀 연결:
    • D1, D2, D3, D4 핀을 각각 다른 디지털 핀에 연결합니다.

 

예제 코드

다음은 4 자리 7 세그먼트 디스플레이를 사용하여 숫자를 표시하는 간단한 Arduino 예제 코드입니다:

 
// Define segment pins
int a = 2, b = 3, c = 4, d = 5, e = 6, f = 7, g = 8, dp = 9;
// Define digit pins
int d1 = 10, d2 = 11, d3 = 12, d4 = 13;

void setup() {
  // Set all the pins as output
  pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT);
  pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT);
  pinMode(g, OUTPUT); pinMode(dp, OUTPUT);
  pinMode(d1, OUTPUT); pinMode(d2, OUTPUT);
  pinMode(d3, OUTPUT); pinMode(d4, OUTPUT);
}

void loop() {
  // Display "1234" on the 4 digit 7-segment display
  displayDigit(1, d1);
  displayDigit(2, d2);
  displayDigit(3, d3);
  displayDigit(4, d4);
}

void displayDigit(int digit, int position) {
  // Turn off all digits
  digitalWrite(d1, LOW); digitalWrite(d2, LOW);
  digitalWrite(d3, LOW); digitalWrite(d4, LOW);

  // Turn on the correct digit
  digitalWrite(position, HIGH);

  // Display the correct segments for the digit
  switch(digit) {
    case 1: digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); break;
    case 2: /* Add segments for digit 2 */ break;
    // Add more cases for other digits
  }

  // Add a short delay to create the multiplexing effect
  delay(5);
}

결론

이번 포스트에서는 4 자리 7 세그먼트 디스플레이를 Arduino에 연결하고 제어하는 방법에 대해 알아보았습니다. 멀티플렉싱 기술을 사용하여 디스플레이를 제어하고, 예제 코드를 통해 숫자를 표시하는 방법을 배울 수 있습니다. 프로젝트 진행 중 궁금한 점이 있으면 언제든지 문의해 주세요!

이 블로그 포스트가 여러분의 프로젝트에 도움이 되길 바랍니다. 다양한 가능성을 탐구하며 전자 프로젝트의 세계를 즐겨보세요! 🎉✨

728x90
반응형