본문 바로가기
코딩/아두이노

아두이노 7-세그먼트 제어 해보자

by 어릴적 꿈은 미친과학자 2019. 11. 3.

안녕하세요 전자공이 입니다.

본문에서 다룰 내용은 아두이노를 이용해 7 세그먼트를 제어해 보려고 합니다.

 

 

 

 

 

-준비물-

아두이노

브레드보드

점퍼선

330옴 고정 저항 8개

 

 

-회로를 구성하기 전에 7 segment 세팅-

7 세그먼트는 2가지 종류로 나뉩니다.

하나는 캐소드 방식 다른 하나는 애노드 방식을 가지고 있습니다.

둘 다 육안상으로 구별하기란 매우 어렵습니다. 그래서 멀티 미터기를 이용하여 내가 가지도 있는 세븐 세그먼트가

캐소드 방식인지 애노드 방식인지 구별하고 사용을 해야 됩니다.

구별 없이 잘못 사용했을 때 세븐 세그먼트에 불이 안 들어오는 것은 기본이며 심한 경우는 소자가 타버려 아깝게 버려야 되는 경우도 생기니 사전에 구별하도록 습관을 꼭 들이면 좋겠습니다.

 

 

-세그먼트 구별 방법- 

아래 사진과 같은 멀티 미터기를 이용해 다음 과같이 측정을 해봅시다.

 

단자가 단락되면 확인을 시켜주는 체커 기능이 있습니다. 이 위치에 커서를 두고 측정을 합니다.

위의 사진 처럼 소리가 나면 애노드 타입으로 두 단자 모두 VCC를 인가해주어야 됩니다.

 

 

위처럼 아무 소리도 안 나면 캐소드 타입으로 VCC와 GND를 인가해주어야 됩니다.

 

 

-회로 구성-

----------------------------------------------------------------------------------------

아두이노------------------<>------------------저항 1,2,3,4,5,6,7,8

pin2------------------<>------------------저항 1 단자

pin3------------------<>------------------저항 2 단자

pin4------------------<>------------------저항 3 단자

pin5------------------<>------------------저항 4 단자

pin6------------------<>------------------저항 5 단자

pin7------------------<>------------------저항 6 단자

pin8------------------<>------------------저항 7 단자

pin9------------------<>------------------저항 8 단자

 

저항 1,2,3,4,5,6,7,8------------------<>------------------세븐 세그먼트

저항 1 단자------------------<>------------------세그먼트 1번 단자

저항 2 단자------------------<>------------------세그먼트 2번 단자

저항 3 단자------------------<>------------------세그먼트 3번 단자

저항 4 단자------------------<>------------------세그먼트 4번 단자

저항 5 단자------------------<>------------------세그먼트 5번 단자

저항 6 단자------------------<>------------------세그먼트 6번 단자

저항 7 단자------------------<>------------------세그먼트 7번 단자

저항 8 단자------------------<>------------------세그먼트 8번 단자

 

에노드 타입 케소드 타입에 따라 VCC극을 두단 자에 연결해야 되는지

VCC극 과 GND를 연결해야 되는지 반드시 확인하고 연결하기 바랍니다.

 

세븐 세그먼트------------------<>------------------아두이노

VCC핀------------------<>------------------VCC

GND핀------------------<>------------------GND

----------------------------------------------------------------------------------------

 

 

-코드 구성-

----------------------------------------------------------------------------------------

} void setup(){

   pinMode(2,OUTPUT);  // 2번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(3,OUTPUT); // 3번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(4,OUTPUT); // 4번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(5,OUTPUT); // 5번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(6,OUTPUT); // 6번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(7,OUTPUT); // 7번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(8,OUTPUT); // 번 핀을 OUTPUT으로 사용하겠다고 선언

   pinMode(9,OUTPUT); // 9번 핀을 OUTPUT으로 사용하겠다고 선언
  }

  void loop(){

digitalWrite(2,HIGH); // 2번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(3, HIGH); // 3번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(4, HIGH); // 4번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(5, HIGH); // 5번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(6, HIGH); // 6번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(7, HIGH); // 7번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(8, HIGH); // 8번 핀을 HIGH으로 사용하겠다고 선언

digitalWrite(9, HIGH); // 9번 핀을 HIGH으로 사용하겠다고 선언

delay(1000); // 딜레이 (1000) ms 적용

digitalWrite(2, LOW); // 2번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(3, LOW); // 3번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(4, LOW); // 4번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(5, LOW); // 5번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(6, LOW); // 6번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(7, LOW); // 7번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(8, LOW); // 8번 핀을 LOW으로 사용하겠다고 선언

digitalWrite(9, LOW); // 9번 핀을 LOW으로 사용하겠다고 선언

delay(1000); // 딜레이 (1000) ms 적용

    }

----------------------------------------------------------------------------------------

 

 

회로 구성을 마치고 위의 코드를 아두이노에 업로드하면 세그먼트의 모든 LED가 1초 단위로 꺼졌다 켜졌다를 반복합니다.

 

 

숫자 또는 A, B, C, D, E, F를 세븐 세그먼트로 표시하고 싶다면

현 코드 안에서 HIGH 부분을 LOW로 바꾸어 표시하여 표시하도록 연습해 봅시다.

하나 씩 바꾸어 확인해보면 어렵지 않게 표시할 수 있습니다.

 

 

이렇게 세븐 세그먼트로 표시를 해보았으니 다음 글에서는 0~9, A~F까지 세븐 세그먼트를 이용해 차례대로 표시되는

코드에 대해 알아보겠습니다.

 

 

-아두이노 세븐 세그먼트 표시 끝-

댓글


page contents