안녕하세요! 여러분의 AI-IT 멘토, '파이컴'입니다. 😊
오늘은 우리 주변에서 정말 흔하게 볼 수 있지만, 그 원리는 잘 몰랐던 부품 하나를 속속들이 파헤쳐 보려고 해요. 바로 엘리베이터 층수나 전자레인지 시간을 알려주는 빨간 숫자판, '7-세그먼트(7-Segment)'입니다!
아두이노로 숫자를 표현하고 싶을 때 가장 먼저 배우게 되는 부품인데요, 오늘 저와 함께 7-세그먼트의 비밀을 하나씩 풀어가다 보면 어느새 여러분도 이 부품의 전문가가 되어 있을 거예요. 자, 그럼 시작해볼까요?
Slide 1: 7-세그먼트 알아보기
이번 시간에는 '4장 화면과 움직임으로 표현하기'의 첫 번째 주자인 '7-세그먼트'에 대해 알아보겠습니다. 이름은 조금 낯설지만, 사실은 우리에게 아주 친숙한 부품이랍니다.
Slide 2: 7-세그먼트의 개념
엘리베이터의 층수 표시, 전자레인지의 타이머... 이 모든 것이 바로 7-세그먼트예요.
이름이 왜 '7-세그먼트'일까요? 영어로 'Segment'는 '조각'이라는 뜻인데요, 말 그대로 7개의 막대기(조각)으로 숫자를 표현하는 부품이라는 의미랍니다.
이 7개의 막대기를 요리조리 껐다 켰다 조합하면 0부터 9까지 모든 숫자를 만들 수 있어요. 오른쪽 아래에 소수점을 나타내는 점(dp, Dot Point)까지 포함하면 사실 8개의 조각으로 이루어져 있죠.
각 조각에는 전 세계 공통으로 이름이 붙어있어요. 맨 위쪽부터 시계 방향으로 a, b, c, d, e, f, 그리고 가운데 허리띠가 g랍니다. 이 이름은 꼭 기억해주세요!
Slide 3: 7-세그먼트의 구조
7-세그먼트의 정체는 바로 '7개 LED의 합체 로봇'이에요!
겉보기엔 하나의 부품 같지만, 사실 그 속은 7개의 길쭉한 LED가 숫자 '8' 모양으로 배치되어 있는 구조랍니다. (소수점까지 8개!)
이게 왜 중요하냐면요, 우리가 이미 LED를 켜고 끄는 방법을 알고 있잖아요? 7-세그먼트도 결국 7개의 LED를 각각 제어하는 것과 원리가 똑같다는 뜻이에요. 전혀 새로운 게 아니니 겁먹을 필요 없어요!
각 LED 막대기의 이름과 위치를 다시 한번 정리해볼까요?
- a: 맨 위쪽
- b: 오른쪽 위
- c: 오른쪽 아래
- d: 맨 아래
- e: 왼쪽 아래
- f: 왼쪽 위
- g: 정가운데 허리띠
- dp: 소수점 (오른쪽 아래)
Slide 4: 공통 음극(Common Cathode, CC) 타입
7-세그먼트를 처음 다룰 때 많은 분들이 "코드는 똑같은데 왜 내 것만 안 켜지지?"하며 좌절하는 포인트가 바로 여기에요. 겉모습은 똑같지만 속이 다른 두 가지 타입이 있기 때문이죠. 바로 '공통 음극(CC)'과 '공통 양극(CA)' 방식입니다.
먼저, 우리에게 익숙한 공통 음극(CC) 타입부터 알아볼게요.
- 원리: 8개 LED의 -극(GND)을 하나로 묶어 공통으로 사용하는 방식이에요. "바닥(GND)을 같이 쓰자!"라고 기억하면 쉬워요.
- 켜는 법: 우리가 아는 상식 그대로예요. 아두이노 핀에서 HIGH(5V) 신호를 주면 해당 LED가 켜집니다. (1 = ON)
- 특징: 직관적이라 이해하기가 아주 쉽답니다.
Slide 5: 공통 양극(Common Anode, CA) 타입
다음은 약간 헷갈릴 수 있는 공통 양극(CA) 타입이에요.
- 원리: 8개 LED의 +극(5V)을 하나로 묶어 공통으로 사용하는 방식이에요. "천장(5V)을 같이 쓰자!"라고 생각하면 돼요.
- 켜는 법: 여기가 중요해요! 이 타입은 아두이노 핀에서 LOW(0V) 신호를 줘야 켜져요. (0 = ON)
- 특징: 마치 청개구리처럼 반대로 동작하죠? 왜냐하면 +극에 이미 5V가 연결되어 있기 때문에, 반대쪽(-극)을 0V(GND)로 만들어줘야 전압 차이가 생겨서 전기가 흐르기 때문이에요.
코드를짰는데 LED가 반대로 켜지거나 꺼진다면, "아! 내가 가진 7-세그먼트는 다른 타입이구나!"하고 바로 알아차릴 수 있겠죠?
Slide 6 & 7: 핀 구조 - 다리가 10개인 이유
가운데 다리 2개: 공통(Common) 핀
위아래 정중앙에 있는 2개의 다리가 바로 '공통(Common) 다리'예요. 이 두 다리는 내부적으로 서로 연결되어 있고, 8개 LED가 함께 사용하는 '공동 전원선' 역할을 합니다.
- CC 타입: 이 공통 다리를 GND(-)에 연결해요.
- CA 타입: 이 공통 다리를 5V(+)에 연결해요.
나머지 8개 다리: 신호(Signal) 핀
나머지 8개의 다리는 각 LED 조각(a~g, dp)을 개별적으로 켜고 끄는 스위치 역할을 하는 '신호(Signal) 다리'예요.
🚨 가장 중요한 함정! 🚨
이 신호 핀들은 알파벳 순서대로 배열되어 있지 않아요! 왼쪽부터 A, B, C... 순서일 거라고 생각하면 큰 오산이에요. 부품에 따라 순서가 뒤죽박죽 섞여 있으니, 반드시 위 그림과 같은 핀 지도(Pin Map)를 보고 'a 핀이 어디지?', 'g 핀이 어디지?' 하나씩 확인하며 연결해야 실수를 막을 수 있습니다!
Slide 8 & 9: 저항 연결 - '1인 1보디가드' 원칙을 기억하세요!
LED를 쓸 때 과전류를 막기 위해 저항을 꼭 연결했던 것, 기억나시죠? 7-세그먼트는 LED 8개가 모인 것이니, 저항도 당연히 8개가 필요해요. (소수점을 안 쓴다면 7개)
저는 이걸 '1인 1보디가드 원칙'이라고 불러요. 각 LED 다리마다 보디가드(저항)를 한 명씩 붙여주는 거죠.
연결 공식은 간단해요.
(세그먼트 신호 핀) ↔ [저항] ↔ (아두이노 디지털 핀)
헷갈리지 않도록 알파벳 순서대로 아두이노 핀 번호를 매겨서 연결하는 것이 가장 좋은 방법이에요.
- 세그먼트 A ↔ 저항 ↔ 아두이노 2번
- 세그먼트 B ↔ 저항 ↔ 아두이노 3번
- 세그먼트 C ↔ 저항 ↔ 아두이노 4번
- ... 이런 식으로 DP 핀까지 순서대로 연결하면 됩니다.
Slide 10: 마지막 화룡점정, 공통 다리 연결
신호선 8개를 저항과 함께 아두이노에 다 연결했는데도 불이 안 들어온다면, 십중팔구 이 단계를 빠뜨린 거예요. 바로 공통(Common) 다리를 전원에 연결하는 일이죠!
- 공통 음극(CC) 방식이라면: 가운데 공통 다리(위나 아래 중 하나)를 GND(-)에 연결해주세요.
- 공통 양극(CA) 방식이라면: 가운데 공통 다리를 5V(+)에 연결해주세요.
이렇게 신호선 8개 + 공통선 1개, 총 9개의 선을 연결하면 드디어 7-세그먼트를 제어할 모든 하드웨어 준비가 끝납니다!
Slide 11: [잠깐!] 저항 1개로 퉁치면 안 되나요?
저항을 8개나 연결하려니 너무 귀찮죠? '에이, 그냥 공통 다리에 큰 저항 하나만 달면 안 될까?' 하는 생각이 스멀스멀 올라올 거예요.
결론부터 말하면, 절대 안 됩니다! 작동은 될지 몰라도 결과가 엉망이 되거든요.
아주 쉬운 비유를 들어볼게요.
전기를 물, 저항을 하나의 수도꼭지, 각 LED 조각을 샤워기 구멍이라고 상상해보세요.
- 숫자 '1'을 켤 땐 구멍 2개(b, c)만 열려요. 하나의 수도꼭지에서 나온 물이 2개 구멍으로만 나오니 물줄기가 아주 세겠죠? (→ 매우 밝음)
- 숫자 '8'을 켤 땐 구멍 7개(a~g)가 전부 열려요. 똑같은 양의 물을 7개 구멍이 나눠 가져야 하니 물줄기가 약해지겠죠? (→ 어두움)
결국 숫자가 바뀔 때마다 밝기가 울렁거리게 돼요. 예쁜 숫자를 보려면 귀찮더라도 꼭! 정석대로 저항 8개를 모두 연결해주세요.
Slide 12: 틴커캐드(Tinkercad) 사용자 필독!
시뮬레이션 툴인 틴커캐드를 사용하시는 분들은 꼭 확인해야 할 부분이 있어요.
틴커캐드의 7-세그먼트는 기본적으로 공통 양극(CA, 0을 줘야 켜지는 청개구리 방식)으로 설정되어 있어요. 우리가 이해하기 쉬운 공통 음극(CC, 1을 줘야 켜지는 방식)으로 바꾸려면, 아래 순서대로 설정을 변경해주세요.
- 7-세그먼트 부품을 클릭하세요.
- 오른쪽에 뜨는 속성 창에서 '일반' 메뉴를 찾으세요.
- '양극'으로 되어있는 설정을 '음극'으로 바꿔주면 끝!
어떠셨나요? 오늘은 7-세그먼트의 기본 개념부터 종류, 핀 구조, 그리고 가장 중요한 저항 연결 원칙까지 꼼꼼하게 살펴봤어요. '합체 로봇', '1인 1보디가드', '수도꼭지 비유'만 기억하시면 앞으로 7-세그먼트를 다룰 때 절대 헷갈리지 않을 거예요!
이제 하드웨어 연결은 완벽하게 마스터했으니, 다음 시간에는 실제로 아두이노 코드를 작성해서 우리가 원하는 숫자를 자유자재로 켜보는 실습을 진행해볼게요.
오늘 내용 복습 잘 해두시고, 다음 시간에 더 재미있는 내용으로 만나요! 👋
이 포스팅의 내용은 교재 [주니어 공학교실 아두이노의 기초] **-** 페이지에 수록된 내용입니다.
댓글 없음:
댓글 쓰기