setup 함수에서 13번 핀은 LED를 제어하기 때문에 OUTPUT으로 사용하고 12번은 스위치의 눌림 상태를 핀을 통해 읽어와야 하기 때문에 INPUT으로 사용해야 합니다.
loop 함수에서 12번 핀을 통해 스위치의 상태를 읽어옵니다. 만약 스위치가 눌러졌을 경우 1(HIGH), 누르지 않았을 경우 0(LOW) 상태가 됩니다. 즉 스위치를 눌렸을 때 flag라는 변수에 1이 저장되고 누르지 않으면 0이 저장됩니다.
bool flag는 boolean 자료형인 flag라는 이름을 가진 변수를 선언한 것입니다. boolean 자료형은 1byte로 1 또는 0을 저장할 수 있습니다. 다시 정리하면 변수를 선언하면 하나의 저장 공간이 생기는데 이름은 flag이고 이 공간에는 1 또는 0을 저장하면 됩니다.
해당 프로그램에서 =, == 기호가 등장합니다. 수학에서 '같다'의 의미는 =이지만 프로그래밍 언어에서는 조금 다릅니다. '=' 기호는 해당 기호를 기준으로 오른쪽에서 처리된 데이터를 왼쪽에 대입(저장)하라는 의미를 가집니다. '==' 기호는 왼쪽과 오른쪽이 같다는 의미입니다.
if-else 문은 조건문으로 if의 조건이 참이면 if 아래 중괄호 { ... }가 실행되고 조건이 거짓이면 else 아래 중괄호 { ... }가 실행됩니다. 즉 스위치를 눌렀을 때 flag에는 1이 저장되기 때문에 if의 조건이 참이 되므로 digitalWrite(13, HIGH); , delay(1000); 문장이 실행됩니다. 다시 말하면 LED가 1초 동안 점등하게 됩니다.
스위치를 누르지 않으면 flag 변수에는 0이 저장되므로 if의 조건은 거짓이 되므로 else 아래 digitalWrite(13, LOW); 문장이 실행됩니다. LED는 소등됩니다.
직접 회로를 구현을 해보시고 반드시 결과를 확인하시길 바랍니다. 결과는 아래와 같이 나타나게 됩니다.
댓글(0)
이모티콘