이전 내용 참고
2023.04.17 - [공부/데이터 수집과 관리] - [Tinkercad] Decoder의 원리
2. Segment의 원리
- 7 Segment
- 7개의 구획으로 구성된 발광 다이오드(LED)로 숫자나 문자를 표시하는데 사용하는 표시 장치이며 FND(Flexible Numeric Display)라고도 불립니다.
- 적은 수의 LED로도 0부터 9까지 숫자를 표시할 수 있고 일부 알파벳 문자도 표현할 수 있어 전자시계, 계산기 등에 활용되는 전자부품입니다.
- 내부적으로 숫자나 문자를 표현하기 위한 7개의 LED와 점을 표현하기 위한 1개의 LED로 구성되어 있습니다.
- 공통 애노드(Anode) 또는 공통 캐소드(Cathode)를 사용하는지에 따라 두가지 종류로 분류됩니다.
공통 사용 전원(5V)- 공통 양극 GND- 공통 음극 LED 켜짐 LOW HIGH LED 꺼짐 HIGH LOW 연결 방식 LED의 + 극끼리 묶어 각각의 다리를 Vcc(5V)에 연결 각각의 LED의 - 극에 Vcc나 GND를 연결해줘서 불이 들어올지 결정하는 방식 - 극끼리 묶어 GND로 연결해주고 + 극에 GND 또는 Vcc를 연결해 각 LED에 불이 들어올지를 결정하는 방식
2.1 핀 위치에 따른 동작-특성
- 7 Segment는 총 10개의 단자로 구성
- 영역
- 숫자를 표시하기 위해 A, B, C, D, E, F, G 영역으로 구성
- 가장 위 가로 Segment를 A라고 함
- A를 기준으로 시계 방향으로 B, C, D… 이고 가운데의 위치한 가로 Segmwnt를 G라고 함
- 마지막 점은 DP
- 단자
- LED를 제어하기 위한 7개 단자
- 점을 표시하기 위한 DP 단자
- 공통 애노드 또는 공통 캐소드 역할을 하는 2개의 단자
- 영역
- 7 Segment로 숫자를 표현하는 원리
- 각각의 단자를 제어해 LED를 켜고 끄는 것과 연관됨
- 예) B단자와 C단자를 제어해 LED를 켜면 숫자 1을 표현
- 예) A단자, B단자, G단자, E단자, D단자의 LED를 켜고 F단자와 C단자의 LED를 끄면 숫자 2를 표현
- 0부터 9까지의 숫자를 7세그먼트로 표현하기 위해 각 단자의 상태를 정리하면 아래 표와 같습니다.
- 각각의 단자를 제어해 LED를 켜고 끄는 것과 연관됨
- 7 Segment로 숫자 출력
- 7 Segment의 A부터 G까지 구분된 영역의 LED를 제어해 0부터 9까지 숫자를 표시할 수 있음
- 아두이노 시뮬레이터를 통해 7 Segment에 숫자를 표시
- 7 Segment를 사용할 때는 Common Anode 타입인지 Common Cathode타입인지 구분해 사용해야 함
- 아두이노 시뮬레이터에서 7 Segment 구성요소를 찾고 구분하는 방법
- 작업판에 7세그먼트를 배치하면 속성창에 Common 타입을 Anode 또는 Cathode로 선택할 수 있는데 기본 값은 Anode(양극)LED Common Anode Common Cathod
켜짐 LOW HIGH 꺼짐 HIGH LOW - Common 타입의 유형에 따라 스케치 코드도 수정해야 함
- 작업판에 7세그먼트를 배치하면 속성창에 Common 타입을 Anode 또는 Cathode로 선택할 수 있는데 기본 값은 Anode(양극)LED Common Anode Common Cathod
- 7 Segment의 각 단자가 의미하는 영역
- 마우스 커서를 7 Segment의 단자에 올려서 아래와 같이 확인
- 각 단자를 아두이노의 디지털 핀에 연결
D
- 7 Segment와 아두이노의 디지털 핀이 브레드보드를 통해 연결
- 7세그먼트의 공통 단자는 Anode 타입이기 때문에 아두이노의 전원(5V)에 연결
- 각 단자는 디지털 핀에 연결하면 됨
- 7세그먼트의 A단자는 디지털 4번핀에 연결하고, B단자는 디지털 5번핀, C단자는 디지털 12번핀, D단자는 디지털 11번핀, E단자는 디지털 10번핀, F단자는 디지털 3번핀, G단자는 디지털 2번핀, DP단자는 디지털 13번핀에 연결되도록 회로를 구성
- 7 Segment로 숫자 출력 코드
- 구성
- 7 Segment와 아두이노의 디지털 핀을 매핑하고 모든 핀을 출력 모드로 설정하는 초기화 부분
- loop() 함수를 통해 7세그먼트에 0부터 9까지 숫자를 출력하는 함수를 호출하는 부분
- 숫자를 출력하기 위해 7세그먼트의 각 단자의 출력 값을 설정하는 함수를 선언하는 부분
- 구성
- 스케치 코드의 2번째 줄부터 9번째 줄은 #define 키워드를 이용해 7세그먼트의 각 단자와 아두이노의 디지털 핀 번호를 매핑
- 예)
- 2번째 줄 “#define A 4”는 7세그먼트의 A단자가 아두이노 디지털 4번핀에 연결된 것임을 의미함.
- 이는 스케치 코드 내에서 숫자 4를 사용하지 않고 문자 ‘A’를 사용해 7세그먼트의 A영역의 LED를 켜고 끄는데 이용할 수 있음
- 숫자보다 문자를 사용하면 코드를 이해하기가 쉽기 때문에 “#define” 문과 같은 선행처리자를 통해 의미가 있는 단어나 문장을 스케치 코드 초기에 선언
- 14번째 줄부터 21번째 줄은 7세그먼트에 연결된 아두이노 디지털 핀을 출력모드로 설정하는 부분
- 각 영역의 LED의 출력을 제어해 원하는 숫자를 출력할 수 있도록 초기화 합니다.
- 24번째 줄에서 37번째 줄은 loop() 함수로 1초 간격으로 0부터 9까지 출력하고 이를 반복하는 코드
- 숫자를 출력하는 함수는 number1, number2… number9로 이름을 지었으며 delay() 함수를 통해 숫자를 출력한 후 1초간 해당 숫자를 볼 수 있도록 지연시간을 줌
- 2번째 줄 “#define A 4”는 7세그먼트의 A단자가 아두이노 디지털 4번핀에 연결된 것임을 의미함.
- 코드의 마지막 부분은 7 Segment에서 숫자를 표시하기 위한 함수를 선언하는 부분
- digitalWrite() 함수: 7 Segment A ~ DP까지 영역의 LED를 켜고 끄는 형태로 숫자를 표시
- 예) 숫자 0를 표시하기 위해 G영역과 DP영역의 LED는 끄고, 다른 영역의 LED를 켬
- 예) 숫자 1을 표시하기 위해 A영역과 B영역의 LED를 켜고 다른 영역의 LED를 끔
- digitalWrite() 함수: 7 Segment A ~ DP까지 영역의 LED를 켜고 끄는 형태로 숫자를 표시
코드를 완성 후 시뮬레이션을 시작하면 아래 그림과 같은 결과를 확인할 수 있습니다.
- 7세그먼트를 통해 숫자 0부터 9까지 1초 간격으로 출력되고 이 과정이 시뮬레이션 중에는 무한 반복
728x90
'공부 > 데이터 수집과 관리' 카테고리의 다른 글
[Tinkercad] 회로 부품, 간단 요약 (0) | 2023.04.18 |
---|---|
[Tinkercad] 초음파 센서: Ultra sonic wave (0) | 2023.04.18 |
[Tinkercad] 7 Segment & Decoder 연결 (0) | 2023.04.18 |
[Tinkercad] 7 Segment, Anode와 Cathode (0) | 2023.04.18 |
[Tinkercad] Decoder의 원리 (0) | 2023.04.17 |