본문 바로가기
아두이노

3.2 디지털출력 LED, 7-SEGMENT 제어하기

by Beijing_KingGod 2019. 12. 18.

실험목표

아두이노의 디지털 핀을 이용하여 디지털 값을 출력한다.

 

필요부품

Arduino Uno, 브레드보드, 점프선 ,LED, 7-SEGMENT, BUZZER, 330Ω저항, 1KΩ저항

 

기본적인 명령어

 

디지털 데이터를 출력(OUTPUT)하기 위해서는 2가지 명령어가 필요하다.

 

pinMode(); 디지털핀의 용도를 설정하는 함수이다. OUTPUT(출력) 또는 INPUT(입력)으로 설정이 가능하다.

 

digitalWrite(); 디지털핀을 OUTPUT(출력)으로 설정하였을 때 그 출력을 HIGH 또는 LOW상태로 설정하는 함수이다.

 

 

1) LED 제어하기

 

 

[LED 제어 배선도]

 

[LED 제어 회로도]
[LED 제어 회로구성]

 

다음과 같이 브레드보드에 330옴 저항과 빨간색LED를 연결한다.

LED (+) 부분은 저항과 직렬 연결 후 아두이노 보드의 13번핀에 연결한다.

LED (-) 부분은 GND에 연결해준다. LED다리 중 구부러진 쪽이 (+)이다. 극성에 주의하며 연결하도록 하자.

 

 

 

프로그램 작성

 

[LED 제어 프로그램 예제]

 

세미콜론과 괄호에 유의하며 프로그램을 업로드 하도록 한다.

하나라도 입력되지 않는다면 업로드가 되지 않을 것이다.

 

pinMode(13, OUTPUT);13번핀을 OUTPUT(출력)포트로 설정한다.

digitalWrite(13, HIGH);13번핀의 출력을 HIGH로 설정한다.

digitalWrite(13, LOW);13번핀의 출력을 LOW로 설정한다.

delay(1000); . 1000ms 1초의 지연시간을 갖는다.

 

[프로그램 실행 결과]

회로구성과 프로그램을 정확하게 구성했다면 LED 1초를 간격으로 깜빡일 것이다. 만약 LED가 깜빡이지 않으면 아두이노 전원을 제거해 준 후 구성된 회로도에 이상이 없는지 확인해보록 한다。

 

 

 

2) 7-SEGMENT 제어하기

7-세그먼트(Segment) FND(Flexible Numeric Display)라고도 불리는 것으로서 0 ~ 9까지의 숫자를 표시하기 위해 만들어진 소자이다.

막대모양의 LED(Light Emitted Diode) 7개를 8자 모양으로 배열시키고 각 LED에 불을 켜거나 끔으로서 10진 숫자를 표시하도록 되어 있다.

막대 모양의 LED 하나하나를 세그먼트(Segment)라고 하며 LED 7개 사용됨으로서7-세그먼트(Segment)라고 이름이 붙여졌다.

 

7-세그먼트(Segment)Anode Cathode 두 가지의 타입으로 나눌 수 있다. 두 타입의 차이는 7-세그먼트(Segment) Vcc GND 중 어디와 연결이 되었느냐에 따라서 나뉜다.

 

[ Vcc와 연결된 애노드(Anode) Type ]

7-세그먼트(Segment)의 각 핀들을 접지에 연결하고 Vcc를 하나로 묶어주는 방식이다. 세그먼트가 LOW상태가 될 시 발광한다.

 

[ GND와 연결된 캐소드(Cathode) Type ]

7-세그먼트(Segment)의 각 핀들에 Vcc를 인가하고 접지를 하나로 묶어주는 방식이다. 세그먼트가 HIGH상태가 될 시 발광한다.

 

 

 

7-Segment 문자 & 숫자 표시 값

 

7-SEGMENT는 앞에서 설명한 바와 같이 7개의 LED로 구성되어있다. LED들이 숫자를 나타내기 위해서는 각각의 LED HIGH혹은 LOW를 나타내야 할 것이다. 위의 진리표는 숫자를 나타내기 위한 각 LED의 상태를 나타내고 있다. 위의 표는 common Cathode 타입이며 각 LED들은 HIGH상태일 때 발광을 하게 된다.

 

[7-SEGMENT 배선도]

 

[7-SEGMENT 회로도]
[7-SEGMEMT 회로구성]

 

다음과 같이 7-SEGMENT와 아두이노를 연결한다. 회로 구성 시

7-SEGMENT Vcc 330Ω저항을 연결해 준다. 모든 세그먼트 포트에 330Ω 저항을 각각 연결해도 무관하다. 저항을 연결해 주는 것은 단지 전류조절을 해주기 위함이다. 포트가 많으니 배선에 주의해서 연결하도록 한다.

 

다음 예제에서는 7-SEGMENT를 이용하여 숫자 1을 출력해보는 연습을 해볼 것이다.

 

 

 

프로그램 작성

 

[7-SEGMENT 제어 프로그램 예제]

코딩에 필요한 함수들은 앞의 LED 제어하기 편에서 모두 다뤘던 것들이다. 함수가 익숙하지 않다면 앞의 LED 제어하기 편을 참고하도록 한다.

2019/12/18 - [아두이노] - 2.1 LED에 전원 인가하기

 

[프로그램 실행 결과]

회로구성과 프로그램을 정확하게 구성했다면 7-SEGMENT에 숫자 1이 출력될 것이다. 만약 1이 출력되지 않으면 아두이노 전원을 제거해 준 후 구성된 회로도에 이상이 없는지 확인해보록 한다.

 

댓글