제가 AVR 공부를 정말 싫어하기는 한데 그나마 정신 붙들고 계속하게 만드는 게 이 책 때문인 것 같습니다. 가끔 문법이 좀 어색하긴 한데(~하지만을 두번 연달아 쓰거나 하는 경우) 쉽게 풀어서 알려주는 게 마음에 듭니다. 책 이름은 Proteus로 쉽게 배우는 Atmega128입니다. 저자는 석현택입니다. FND는 숫자를 표현하는 장치입니다. 이번 포스팅에서 다룰 주제는 FND인데 Flexible Numberic Display의 약자입니다. 해석하자면 유연히 숫자를 보여줄 수 있는 장치 정도가 되겠습니다.
#AVR #Atmega128 #임베디드 #프로그래밍 #FND #7segment #7 #segment #7세그먼트 #FND제어 #숫자출력
목차
1) 7 세그먼트란?
2) 출력 방식
3) 숫자 출력하기
4) 버튼 활용하기
연결과정 영상을 보시면 LCD(I2C) 연결과정을 파악하는데 도움이 됩니다.
1) 7 세그먼트란?
7세그먼트 표시 장치(Seven-segment display)는 표시 장치의 일종으로, 7개의 획으로 숫자나 문자를 나타낼 수 있다. 비슷한 역할을 하는 점 행렬에 비해 단순하기 때문에 전자 회로의 내부적인 수치를 보여 주는 데 자주 사용된다.
2) 7 세그먼트 출력 방식
한 육각형 마다 하나의 LED 핀을 가집니다.
2번핀 - a /3번핀 - b /4번핀 - c /5번핀 - d /6번핀 - e /7번핀 - f /8번핀 - g /9번핀 - dp
핀에 연결하여 각 알파벳에 해당하는 LED를 HIGH 또는 LOW 로 키고 끌수 있습니다.
밑에 사진을 보시면 잘 알수 있습니다!
3) 7 세그먼트 출력하기
7세그먼트로 숫자와 알파벳의 형태를 출력하기 전에!
7세그먼트 LED한칸씩(a~dp) 출력해보겠습니다.
왼쪽 : Vcc 오른쪽: GND
4) 7 세그먼트로 숫자 출력하기
int i,j;
int digitNum[10][8] = {
// 캐소드 타입
{1,1,1,1,1,1,0,0}, //0
{0,1,1,0,0,0,0,0}, //1
{1,1,0,1,1,0,1,0}, //2
{1,1,1,1,0,0,1,0}, //3
{0,1,1,0,0,1,1,0}, //4
{1,0,1,1,0,1,1,0}, //5
{1,0,1,1,1,1,1,0}, //6
{1,1,1,0,0,0,0,0}, //7
{1,1,1,1,1,1,1,0}, //8
{1,1,1,1,0,1,1,0} //9
// 애노드 타입
// {0,0,0,0,0,0,1,1}, //0
// {1,0,0,1,1,1,1,1}, //1
// {0,0,1,0,0,1,0,1}, //2
// {0,0,0,0,1,1,0,1}, //3
// {1,0,0,1,1,0,0,1}, //4
// {0,1,0,0,1,0,0,1}, //5
// {0,1,0,0,0,0,0,1}, //6
// {0,0,0,1,1,1,1,1}, //7
// {0,0,0,0,0,0,0,1}, //8
// {0,0,0,0,1,0,0,1} //9
};
5) 7 세그먼트 버튼 활용하기
- 버튼을 활용하여 7세그먼트의 숫자를 증가 또는 감소시키기
int btnMinus = 11;
int num = 0;
int segmLed[] = {2,3,4,5,6,7,8,9};
int i,j;
int digitNum[10][8] = {
// 캐소드 타입
{1,1,1,1,1,1,0,0}, //0
{0,1,1,0,0,0,0,0}, //1
{1,1,0,1,1,0,1,0}, //2
{1,1,1,1,0,0,1,0}, //3
{0,1,1,0,0,1,1,0}, //4
{1,0,1,1,0,1,1,0}, //5
{1,0,1,1,1,1,1,0}, //6
{1,1,1,0,0,0,0,0}, //7
{1,1,1,1,1,1,1,0}, //8
{1,1,1,1,0,1,1,0} //9
};
참고: [아두이노 기초] 8. 7 세그먼트(FND) : 네이버 블로그 (naver.com) , 7세그먼트-숫자 표시하기 (kocoafab.cc) , 7세그먼트 표시 장치 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)
공유하기
게시글 관리
구독하기아두이노 기초 강좌