본문 바로가기

강좌/아두이노 강좌

아두이노 기초강좌 08. 무작정 푸시 버튼으로 LED 제어하기 분석

우리는 지난 강좌에서 위와 같은 회로를 만들었습니다.

이번 강좌에서 우리는 지난 시간에 쓴 코드를 분석해볼 것입니다.


코드 분석

 int val = 0;


void setup()

{

  pinMode(13,OUTPUT);

  pinMode(7,INPUT);

}


void loop()

{

  val = digitalRead(7);


  if(val==HIGH)

  {

    digitalWrite(13,HIGH);

  }

  else

  {

    digitalWrite(13,LOW);

  }

}


int val = 0;


우리는 'val'이라는 문자에 '0'이라는 값을 넣어주고 시작할 것입니다. 'val'이라는 글자는 버튼을 누를 때, 값을 저장하는 창고 역할을 하게 될 것입니다. 

int는 우리가 창고를 쓰긴 할건데 정수(integer)를 저장할 때 쓸 창고를 만들고 싶을 때 사용합니다. val은 창고의 이름이 되고, 0은 창고에 맨 처음 저장될 값이 될 것입니다.


void setup()

{

  pinMode(13,OUTPUT);

  pinMode(7,INPUT);

}


13번 핀을 OUTPUT(출력)으로, 7번 핀을 INPUT(입력)으로 설정합니다.


void loop()

{


이제 반복문을 시작합니다.


val = digitalRead(7);

 

 'val'이라는 창고에 7번핀에서 읽어온 디지털 신호를 저장해줍니다. 버튼이 눌렸을 때 'val'에는 'HIGH'라는 상수가 저장되고, 버튼이 눌리지 않을 때는 'val'에 'LOW'라는 상수가 저장됩니다. HIGH는 1이고, LOW는 0이라고 생각하면 쉽습니다. 상수란 아두이노 언어에서 미리 정해져있는 값들입니다. 이 값들은 우리가 절대로 바꿀 수가 없습니다. 

상수에 대한 자세한 설명은 https://www.arduino.cc/reference/ko/language/variables/constants/constants/ 에서 확인할 수 있습니다.


if(val==HIGH)

{


 'val'는 창고에 있는 값이 'HIGH'라면 ~를 실행할 것이다 라는 조건문입니다. if( ~ ) 에서 괄호 안에 있는 조건이 충족된다면 중괄호 안의 명령문을 시작하게 됩니다. 


아두이노에서 '=' 등호를 하나만 써주는 것과 두 개를 써주는 것은 다른 의미를 갖게 됩니다. 

위에 val = digitalRead(7); , 그리고  int val = 0; 에서 알 수 있듯이 A = B 라고 하면 A에 B의 값을 저장한다는 의미를 갖습니다.

반면에 등호를 위의 val==HIGH 처럼 두 개를 써주게 되면 val과 HIGH의 값을 비교하여 결과로 TRUE(참) 혹은 FALSE(거짓)을 반환합니다. 


digitalWrite(13,HIGH);


13번 핀의 LED를 켜줍니다.


}


이 닫는 중괄호는 if(val==HIGH)의 조건문의 끝을 의미합니다.


else

{


 else는 앞에 if 문이 나올 때 뒤에 따라 나오며 사용합니다. 위의 if 문장이 참이라면(여기서는 'val' 창고에 저장된 값이 'HIGH'일 때), if 안에 있는 코드들이 실행되겠지만, 위의 if 문장이 거짓이라면(여기서는 'val' 창고에 저장된 값이 'HIGH'가 아닐 때), else 뒤에 따라오는 코드들이 실행됩니다. if 뒤에 반드시 else가 와야하는 것은 아니고, if 뒤에 다른 조건의 if가 따라오는 것 역시 가능합니다. 


digitalWrite(13,LOW);


13번 핀의 LED를 꺼줍니다.


}


이 중괄호는 else 문의 끝을 의미합니다


}


뒤에 한 번 더 붙는 이 중괄호는 void loop()함수의 끝을 의미합니다.


다음 강좌에서는 푸쉬버튼이 무엇인지, 그리고 왜 저항을 우리가 저기에 썼는지에 대해 알아보겠습니다.


이전 강좌 보기

2018/12/24 - [강좌/아두이노 강좌] - 아두이노 기초강좌 01. 아두이노란?

2018/12/24 - [강좌/아두이노 강좌] - 아두이노 기초강좌 02. 아두이노 설치하기

2018/12/24 - [강좌/아두이노 강좌] - 아두이노 기초강좌 03. 전기 이해하기, 전압, 전류, 저항

2018/12/24 - [강좌/아두이노 강좌] - 아두이노 기초강좌 04. 무작정 LED 켜보기

2018/12/24 - [강좌/아두이노 강좌] - 아두이노 기초강좌 05. 무작정 LED 켜보기 코드 분석

2018/12/29 - [강좌/아두이노 강좌] - 아두이노 기초강좌 06. 브레드보드, 빵판에 대하여

2018/12/29 - [강좌/아두이노 강좌] - 아두이노 기초강좌 07. 무작정 푸시 버튼으로 LED 제어하기