반응형
FND(Flexible Numeric Display)는 숫자를 표시하기위해 8개의 LED를 각 핀에 연결하여 디스플레이하는 디바이스입니다.
아래 그림과 같이 내부적으로 8개의 LED가 각 핀에 연결된 구조를 가지고 있으며 각 LED 핀은 시계방향으로 a/b/c/d/e/f/g/dp순으로 연결되어 있습니다.
LED를 켜기 위해서는 +/-를 연결해 줘야하는데 +극을 공통으로 사용하는 common-anode타입(아랫그림 왼쪽)과 -극을 공통으로 사용하는 common-cathode타입(아랫그림 오른쪽) 2가지 종류가 있습니다.
제가 가지고 있는 common-cathode으로 테스트를 해 보았습니다. 아두이노와 아래와 같이 연결합니다.
아래는 위 회로대로 실제 연결한 사진입니다
아래 코드를 사용하여 테스트를 하였습니다
byte fnd_digits[17][8] = {
// g, f, e, d, dp, c, b, a
{0, 1, 1, 1, 0, 1, 1, 1}, // 0
{0, 0, 0, 0, 0, 1, 1, 0}, // 1
{1, 0, 1, 1, 0, 0, 1, 1}, // 2
{1, 0, 0, 1, 0, 1, 1, 1}, // 3
{1, 1, 0, 0, 0, 1, 1, 0}, // 4
{1, 1, 0, 1, 0, 1, 0, 1}, // 5
{1, 1, 1, 1, 0, 1, 0, 1}, // 6
{0, 1, 0, 0, 0, 1, 1, 1}, // 7
{1, 1, 1, 1, 0, 1, 1, 1}, // 8
{1, 1, 0, 1, 0, 1, 1, 1}, // 9
{1, 1, 1, 0, 0, 1, 1, 1}, // A
{1, 1, 1, 1, 0, 1, 0, 0}, // B
{0, 1, 1, 1, 0, 0, 0, 1}, // C
{1, 0, 1, 1, 0, 1, 1, 0}, // D
{1, 1, 1, 1, 0, 0, 0, 1}, // E
{1, 1, 1, 0, 0, 0, 0, 1}, // F
{1, 1, 1, 1, 1, 1, 1, 1} // ALL
};
int count = 0;
int fnd_0 = 6, fnd_1 = 7, fnd_2 = 8, fnd_3 = 9;
int fnd_4 = 10, fnd_5 = 11, fnd_6 = 12, fnd_7 = 13;
int fnd_grp[8] = {fnd_0, fnd_1, fnd_2, fnd_3,
fnd_4, fnd_5, fnd_6, fnd_7};
void setup()
{
for (int i = 0 ; i < 8 ; i++) {
pinMode(fnd_grp[i], OUTPUT);
digitalWrite(fnd_grp[i], LOW);
}
}
void NumberDisplay(int num)
{
for (int j = 7; j >= 0; j--)
digitalWrite(fnd_grp[7-j], fnd_digits[num][j]);
}
void loop()
{
NumberDisplay(count++);
count %= 17;
delay(600);
}
아래는 간단히 테스트 해 본 영상입니다.
반응형
'Hardware > Arduino ( AVR )' 카테고리의 다른 글
[아두이노] USB HOST SHIELD 구매 (0) | 2021.01.04 |
---|---|
[아두이노] 74HC595 테스트 (0) | 2021.01.03 |
[아두이노] AD9833 사용하기 (0) | 2020.12.05 |
[아두이노] OV7670 사용하기 (3) | 2020.11.26 |
[아두이노] WS2812, WS2812B, WS2813 비교 및 WS2812B 사용하기 (0) | 2020.11.24 |
댓글