본문 바로가기
아두이노

3.2 아두이노 디지털 출력 7-segment 응용문제

by Beijing_KingGod 2019. 12. 18.

Question 3-1

7-SEGMENT를 이용하여 A~F, 0~9를 차례대로 출력하기.

 

 

Question 3-2

7-SEGMENT를 이용하여 숫자 0,2,4,6,8을 차례대로 반복하여 출력하기

 

 

Question 3-3 (디지털 입력을 배운 후 진행)

기존 회로도에 스위치 2개를 추가한 후 아래 조건에 맞도록 프로그램을 작성한다.

1) 스위치1을 누르면 7-SEGMENT에서 숫자 1,3,5,7,9를 순서대로 한 번 출력 후 0에서 대기

2) 스위치2를 누르면 7-SEGMENT에서 숫자 0,2,4,6,8을 순서대로 한 번 출력 후 0으로 대기

 

 

 


Question 3-1 정답

 

for(i=0, i<6, i++){           //for(초기값, 종료조건, 증감치){

Alphabet(i);                  //반복문장(조건이 만족하는 동안 실행)

delay(1000);}

C언어 공부를 통해 for문의 기초를 아는 사람이라면 이 함수가 어색하지 않을 것이다. for문이란 사용자가 원하는 숫자를 차례로 출력해주는 함수이다. 위의 함수에서 변수i int형으로 미리 선언되있다. for문의 괄호 안에는 차례로 (초기값, .종료조건, 증감차) 순으로 입력한다. for문에 속해 있는 함수를 한 번 실행할 때마다 증감차가 적용되며 종료조건을 만족할 때까지 반복실행된다.

clr();

서브함수 호출문이다. void clr() 라는 서브함수로 이동하게 된다.

switch(n); 흔히 스위치문이라고 한다. 아래 반드시 case문이 따라오며 n값에 대응되는 case를 실행한다.

case 0: 스위치문에서 받은 n값에 대응되는 문장을 실행시키기 위해 사용된다.

break; switch문에서 n값에 대응되는 case문을 실행한 후 다시 switch문으로 돌아가기 위한 정지신호라고 생각하면 된다. 만일 break;를 넣지 않는다면 실행한 case문에 뒤에 있는 모든 case문을 실행 하게 된다.

default: 스위치문에서 입력된 값과 대응되는 case문이 없을 때 default문을 실행하게 된다. 오류를 검출하기 위해 사용된다.

 

 

 


Question 3-2 정답

 

 

 

[프로그램 실행 결과1]
[프로그램 실행 결과2]
[프로그램 실행 결과3]

 

[프로그램 실행 결과4]
[프로그램 실행 결과5]


Question 3-3 정답

 

[배선도]
[회로도]

 

[회로구성]

 

 

프로그램

 

[프로그램 실행 결과]

댓글