반응형
FND는 Flexible Numeric Display(가변숫자표시기)의 약자이며 LED 표시기로 숫자를 표시하는 부품으로 흔히 세븐세그먼트(7-Segment)라고 합니다. 보통 아라비아 숫자만 표시하지만 오른쪽 아래에 소수점(DP)을 포함하고 있는 부품도 있습니다. 간단한 숫자를 나타내는데에 많이 활용되며 계산기, 엘리베이터, 전자시계에서 흔히 볼 수 있는 부품입니다.
7세그먼트는 발광할 수 있는 7개의 막대를 가지고 있으며 그 중 해당되는 막대를 조광하여 숫자를 표시하게되는데 다음은 일반적으로 각 숫자에 해당하는 7세그먼트 표시 장치의 모습입니다.
Common핀으로 6, 8, 9 12번 핀이 사용되며 이 핀으로 4개의 FND 중 하나만 선택이 되어서 8개 LED 제어 신호를 받게 되고 1, 2, 3, 4, 5, 7, 10, 11번 핀은 8개의 LED를 제어해서 문자를 표기할 수 있게 됩니다.
회로도
- 연결시 220옴을 함께 연결할 것을 권장합니다!
소스코드
/*
네 자리 7세그먼트 연결하기
*/
int position_pin[] = {1,2,3,4}; //4자리 결정 핀
int segment_pin[] = {5,6,7,8,9,10,11,12}; //세그먼트 제어 핀
const int delayTime = 5; //일시정지 시간
//0 ~ 9를 표현하는 세그먼트 값
byte data[] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE4, 0xFE, 0xE6};
void setup() {
//4자리 결정 핀 출력용으로 설정
for(int i = 0; i < 4; i++) {
pinMode(position_pin[i], OUTPUT);
}
//세그먼트 제어 핀 출력용으로 설정
for(int i = 0; i < 8; i++) {
pinMode(segment_pin[i], OUTPUT);
}
}
void loop() {
show(1,1); //첫 번째 자리, 1출력
delay(delayTime); //0.005초 일시정지
show(2,2); //두 번째 자리, 2출력
delay(delayTime); //0.005초 일시정지
show(3,3); //세 번째 자리, 3출력
delay(delayTime); //0.005초 일시정지
show(4,4); //네 번째 자리, 4출력
delay(delayTime);
countNum(); //countNum함수 호출
}
void show(int position, int number) {
//4자리 중 원하는 자리 선택
for(int i = 0; i < 4; i++) {
if(i + 1 == position){
digitalWrite(position_pin[i], LOW);
} else {
digitalWrite(position_pin[i], HIGH);
}
}
//8개 세그먼트를 제어해서 원하는 숫자 출력
for(int i = 0; i < 8; i++){
byte segment = (data[number] & (0x01 << i)) >> i;
if(segment == 1){
digitalWrite(segment_pin[7 - i], HIGH);
} else {
digitalWrite(segment_pin[7 - i], LOW);
}
}
}
/*
0001부터 하나씩 카운트하는 함수
*/
void countNum() {
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
for(int k = 0; k < 10; k++) {
for(int l = 0; l < 10; l++) {
show(1,i);
delay(delayTime);
show(2,j);
delay(delayTime);
show(3,k);
delay(delayTime);
show(4,l);
delay(delayTime);
}
}
}
}
delay(1000);
}
[결과]
반응형
'피지컬컴퓨팅 > 아두이노' 카테고리의 다른 글
RFID 모듈 활용하기(도어락 만들기) (0) | 2024.03.26 |
---|---|
8x8 도트 매트릭스( MAX7219 ) 활용하기 (0) | 2024.03.26 |
센서 활용하기-조도센서, 물높이 센서, 기울기 센서 등 (0) | 2024.03.25 |
I2C LCD 활용하기(센서 측정 값 나타내기-초음파센서, 온습도 센서) (0) | 2024.03.21 |
I2C LCD 활용하기 (0) | 2024.03.21 |