[ 기초 ] 아두이노 실습 - 7 Segment LED 카운트 하기
아두이노를 사용한 7 Segment LED 카운트 하기
FND(Flexible Number Display) 7 Segment LED 카운트 하기
① FND 소자설명 < 캐소드 구동 방식 >
② 하드웨어 구성
아래 그림 처럼 하드웨어를 구성한다.
현재 위그림의 회로 연결이 된 상태는 다음과 같습니다.
D0 -> teminal B
D1 -> teminal A
D2 -> teminal D
D3 -> teminal C
D4 -> teminal E
D5 -> teminal F
D6 -> teminal G
GND는 teminal -com2로 연결 하였습니다.
ⓞ FND 7 Segment LED 논리 회로
③ 아두이노 프로그래밍
프로그램 로직을 구현한다.
void setup()
{
for( int pin = 0; pin < 7; pin++){
pinMode(pin,OUTPUT);
}
}
void loop()
{
// 0
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
digitalWrite(6,0);
delay(1000);
// 1
digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0);
digitalWrite(6,0);
delay(1000);
// 2
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,0);
digitalWrite(6,1);
delay(1000);
// 3
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,0);
digitalWrite(6,1);
delay(1000);
// 4
digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
digitalWrite(6,1);
delay(1000);
// 5
digitalWrite(0,0); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
digitalWrite(6,1);
delay(1000);
// 6
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
digitalWrite(6,0);
delay(1000);
// 7
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,0);
digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
digitalWrite(6,0);
delay(1000);
// 8
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
digitalWrite(6,1);
delay(1000);
// 9
digitalWrite(0,1); digitalWrite(1,1); digitalWrite(2,1);
digitalWrite(3,1); digitalWrite(4,0); digitalWrite(5,1);
digitalWrite(6,1);
delay(1000);
}
④ 실물 사진
아래 그림은 7 세그먼트 캐소드 방식의 구동하는 실제 사진입니다. 아래와 같이 보드를 구성하고 결과물을 확인합니다.
---------------------------------------------------------------------------------------------------------------------------------
※ FND 소자설명 < 애너드 구동 방식 > 일 경우 .
□ 회로 구성
캐서드 방식은 GND에서 전원부를 연결 해 주었으나 , 애너드 방식은 5v 또는 3.3v에서 전원을 공급해줍니다.
□ 아두이노 스케치
void setup()
{
for( int pin = 0; pin < 7; pin++){
pinMode(pin,OUTPUT);
}
}
void loop()
{
// 0
digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
digitalWrite(6,1);
delay(1000);
// 1
digitalWrite(0,0); digitalWrite(1,1); digitalWrite(2,0);
digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,1);
digitalWrite(6,1);
delay(1000);
// 2
digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,1);
digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,1);
digitalWrite(6,0);
delay(1000);
// 3
digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,1);
digitalWrite(6,0);
delay(1000);
// 4
digitalWrite(0,0); digitalWrite(1,1); digitalWrite(2,0);
digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,0);
digitalWrite(6,0);
delay(1000);
// 5
digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
digitalWrite(6,0);
delay(1000);
// 6
digitalWrite(0,1); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
digitalWrite(6,0);
delay(1000);
// 7
digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,1); digitalWrite(4,1); digitalWrite(5,0);
digitalWrite(6,1);
delay(1000);
// 8
digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,0); digitalWrite(4,0); digitalWrite(5,0);
digitalWrite(6,0);
delay(1000);
// 9
digitalWrite(0,0); digitalWrite(1,0); digitalWrite(2,0);
digitalWrite(3,0); digitalWrite(4,1); digitalWrite(5,0);
digitalWrite(6,0);
delay(1000);
}
캐서드 방식에서는 "1"이 LED를 켜줬지만, 애너드 방식은 그와 반대이므로 "0"을 출력해야 LED가 켜집니다.
□ 실물 사진