Arduino | 4 digit 7 segment |
D8 | 1 (E segment) |
D9 | 2 (D segment) |
D10 | 3 (DP segment) |
D11 | 4 (C segment) |
D12 | 5 (G segment) |
D13 | 6 (D4) |
D7 | 7 (B segment) |
D6 | 8 (D3) |
D5 | 9 (D2) |
D4 | 10 (F segment) |
D3 | 11 (A segment) |
D2 | 12 (D1) |
아두이노와 4 Digit 7 Segment를 연결한다.
//a,b,c,d,e,f,g 상태값
byte segValue[10][7] = {
{ 1,1,1,1,1,1,0}, //0
{ 0,1,1,0,0,0,0}, //1
{ 1,1,0,1,1,0,1}, //2
{ 1,1,1,1,0,0,1}, //3
{ 0,1,1,0,0,1,1}, //4
{ 1,0,1,1,0,1,1}, //5
{ 1,0,1,1,1,1,1}, //6
{ 1,1,1,0,0,0,0}, //7
{ 1,1,1,1,1,1,1}, //8
{ 1,1,1,1,0,1,1} //9
};
byte segPin[8] = { 3, 7, 11, 9, 8, 4, 12, 10 }; //사용핀{a,b,c,d,e,f,g,dp} 순서대로임
byte digitPin[4] = { 2, 5, 6, 13 }; //segment 위치 핀
unsigned long readTime = 0; //현재시간
int d1 = 0; //1의 자리
int d2 = 0; //10의 자리
int d3 = 0; //100의 자리
int d4 = 0; //1000의 자리
void setup()
{
for (int i = 0; i < 10; i++)
{
pinMode(segPin[i], OUTPUT);
}
for (int j = 0; j < 4; j++)
{
pinMode(digitPin[j], OUTPUT);
digitalWrite(digitPin[j], HIGH);
}
}
void loop()
{
readTime = millis() / 1000;
d1 = readTime % 10; //1의 자리
d2 = (readTime / 10) % 10; //10의 자리
d3 = (readTime / 100) % 10; //100의 자리
d4 = (readTime / 1000) % 10; //1000의 자리
segOutput(3, d1, 0); //1의 자리
if (readTime >= 10) segOutput(2, d2, 0); //10의 자리
if (readTime >= 100) segOutput(1, d3, 0); //10의 자리
if (readTime >= 1000) segOutput(0, d4, 0); //10의 자리
}
//LED 초기화
void segClear()
{
for (int i = 0; i < 8; i++)
{
digitalWrite(segPin[i], LOW);
}
}
//LED 출력
void segOutput(int d, int Number, int dp)
{
segClear();
digitalWrite(digitPin[d], LOW);
for (int i = 0; i < 7; i++)
{
digitalWrite(segPin[i], segValue[Number][i]);
}
digitalWrite(segPin[7], dp);
delayMicroseconds(1000); // 1 milisecond
digitalWrite(digitPin[d], HIGH);
}
프로그램을 실행하면 0부터 시작하여 1초에 1씩 증가한다.
소스 출처
https://steemit.com/kr-arduino/@codingman/4-digit-7-segment-display
4-Digit 7-Segment Display 제어(아두이노) — Steemit
마무리 오늘은 실제 4-Digit 7-Segment Display 부품에 카운트 결과를 출력해 보았습니다. 지난 시간에 시리얼모니터로 결과를 출력했던 것과 다르게 좀 복잡해 보였을 꺼에요. 하나하나 뜯어보면 어렵
steemit.com
배선 출처
https://m.blog.naver.com/gbtec/221337841703
4-Digit 7-Segment
안녕하세요:> 이번에 알아볼 센서는! 4-Digit 7-Segment 입니다! 그럼 바로 시작하겠...
blog.naver.com
Arduino IDE version: 2.2.1 에서 FND 라이브러리를 검색할 수 없어 배선만 참조하였다.
'IOT > 아두이노' 카테고리의 다른 글
[아두이노] 74HC595와 4 Digit 7 Segment (1) | 2023.12.30 |
---|---|
[아두이노] PWM 전송 (0) | 2023.11.14 |
아두이노 부트로더 굽기 MiniCore (Arduino IDE 2.2.1) (0) | 2023.10.20 |
아두이노 부트로더 굽기 (Arduino IDE 2.2.1) (1) | 2023.10.17 |
아두이노 개발환경 설치 (Arduino IDE 2.2.1) (0) | 2023.10.13 |