디필의 요모조모
아두이노(Ardoino) 7-Segment 코드 및 연결 방법 본문
7-Segment (연속 출력)
(1)
void setup()
{
int i;
for(i=3; i<10; i++)
pinMode(i, OUTPUT);
}
void loop()
{
// 숫자 0
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
delay(1000);
// 숫자 1
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(1000);
// 숫자 2
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(1000);
// 숫자 3
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(1000);
// 숫자 4
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
// 숫자 5
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
// 숫자 6
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
// 숫자 7
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(1000);
// 숫자 8
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
// 숫자 9
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
}
(2)
int Seven[10][7] = {{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,0,0,1,1}};
void setup()
{
int i;
for(i=3; i<10; i++)
pinMode(i, OUTPUT);
}
void loop()
{
for(int a=0; a<10; a++)
{
for(int b=0; b<7; b++)
digitalWrite(b+3, Seven[a][b]);
delay(1000);
}
}
7-Segment (입력된 숫자만 출력) 코드
int Seven[10][7] = {{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,0,0,1,1}};
void setup()
{
Serial.begin(9600);
int i;
for(i=3; i<10; i++)
pinMode(i, OUTPUT);
}
void loop()
{
char value;
if(Serial.available() > 0)
{
value = (char)Serial.read();
Serial.println(value);
switch(value)
{
case '0' : Led_on(0);
break;
case '1' : Led_on(1);
break;
case '2' : Led_on(2);
break;
case '3' : Led_on(3);
break;
case '4' : Led_on(4);
break;
case '5' : Led_on(5);
break;
case '6' : Led_on(6);
break;
case '7' : Led_on(7);
break;
case '8' : Led_on(8);
break;
case '9' : Led_on(9);
break;
}
}
}
void Led_on(int val)
{
for(int a = 0; a < val+1; a++)
for (int b = 0; b < 7; b++)
digitalWrite(b+3,Seven[a][b]);
delay(1000);
}
코드 연결 모습
위의 사진과 함께 올린 표를 참고해서 연결하면 좀 더 편합니다.
먼저 사진과 같이 7-Segment(사진에서 숫자를 표시)를 브래드보드에 연결해 줍니다.
그 후, 7-Segment의 3번 위치 즉, 아래쪽 가운데부터 파란줄 밑 - 위치에 저항을 연결해 줍니다.
같은 라인에 GND를 연결합니다.(저항 없이 바로 연결하면 7-Segment가 망가집니다 ㅜ)
그리고 순서대로 사진 밑 그림과 표를 이용해
아두이노 3번과 7-Segment의 7번 위치, 아두이노 4번과 7-Segment의 6번 위치... 이런 식으로 회로를 연결해줍니다.
그리고 컴포트후 실행을 하면 정상적으로 작동하는 모습을 보실 수 있을 겁니다^^
'Programming Language > C++' 카테고리의 다른 글
명품 C++ Programming 4장 요약 (0) | 2020.10.13 |
---|---|
명품 C++ Programming 3장 요약 (0) | 2020.10.13 |
명품 C++ Programming 2장 요약 (0) | 2020.10.13 |
명품 C++ Programming 1장 요약 (3) | 2020.10.13 |
아두이노(Ardoino) 블링크 코드 및 연결 방법 (0) | 2019.12.09 |
Comments