FND(Flexible Numeric Display) : LED의 조합으로 숫자 표시를 위하여 사용되는 디스플레이 모듈
7개의 LED를 사용하기 때문에 7-segment라고도 한다. 또한 간단한 기호나 16진수까지 표현 가능하다.
FND를 이용해서 0~9의 숫자를 표시해본다.
※ 명령어
- pinMode(핀번호, 설정) : 핀의 입출력 모드를 설정한다. '핀번호'에는 설정하고자 하는 핀의 번호, '설정'에는 입력으로 사용하기 위해서는 'INPUT', 출력으로 사용하기 위해서는 'OUTPUT', 입력이며 풀업 사용시 'INPUT_PULLUP'을 기술한다.
- digitalWrite(핀번호, 값) : 핀에 디지털 출력(High or Low)을 한다. '핀번호'에는 출력하고자 하는 핀의 번호를, '값'에는 'HIGH' 혹은 'LOW'를 설정하여 High 혹은 Low 출력을 한다.
/*
* 예제
* FND 제어 0~9까지 1초단위로 표시하기
*/
// 0~9까지 LED표시를 위한 상수 설정
const byte number[10]={
0x3f, //B0011 1111, 0
0x06, //B0000 0110, 1
0x5b, //B0101 1011, 2
0x4f, //B0100 1111, 3
0x66, //B0110 0110, 4
0x6d, //B0110 1101, 5
0x7d, //B0111 1101, 6
0x27, //B0000 0111, 7
0x7f, //B0111 1111, 8
0x6f //B0110 1111, 9
};
void setup() {
// 2~9번 핀을 a b c d e f g dot의 순으로 사용한다.
// 2~9번 핀을 출력으로 초기화 시킨다.
for(int i=2;i<=9;i++){
pinMode(i,OUTPUT);
};
digitalWrite(9,LOW); // 점은 표시하지 않는다.
}
void loop() {
// LED의 숫자를 0~9로 변화시킨다.
for(int k=0;k<=9;k++){
fndDisplay(k); // k값을 출력한다.
delay(1000);
}
}
// LED 점등
void fndDisplay(int displayValue){
boolean bitValue;
for(int i=2;i<=9;i++)
{
// 아두이노의 2~9번 핀에 모두 LOW 신호를 줘서 소등시킨다.
digitalWrite(i,LOW);
}
for(int i=0;i<=7;i++){
bitValue=bitRead(number[displayValue],i); // bitRead(x,n) x는 값, n은 비트 위치
digitalWrite(i+2,bitValue);
}
}
'아두이노' 카테고리의 다른 글
[아두이노] RGB LED로 색상 표현하기 (0) | 2020.10.13 |
---|---|
[아두이노] 포텐쇼미터로 LED 밝기 개수 조절하기 (0) | 2020.10.13 |
[아두이노] LED 밝기 조절 (0) | 2020.10.13 |
[아두이노] LED 점멸 (0) | 2020.10.13 |
[아두이노] I2C를 이용한 LCD 출력 ② (0) | 2020.10.10 |