일상 박형

카테고리       

안녕하세요. 공대 박형입니다.

 

오늘은 제어문 if에대해 알아보겠습니다.

 

제어문은 크게 두가지로 나뉘는데 사용 방법에따라 조건 제어문과 반복 제어문으로 분류됩니다.

 

복잡한 동작을 할 수행할 때는 제어문을 사용해 프로그램을 작성하면 보다 쉽고 간결하게 프로그램을 작성할 수 있습니다.

 

대표적인 조건 제어문인 if문은 주어진 조건일 참(True)일 경우 작성한 코드를 실행시키고 거짓(False)일 경우 코드를 실행시키지 않고 다음 코드를 넘어가는 방식입니다.

 

순서도로 표현하면 아래와 같습니다.

코드 사용법은 아래와 같습니다.

 

if ( 조건 ){

  동작 할 코드

}

 

ex)

 

const int sw = 7;
const int led = 13;

void setup()
{
  Serial.begin(9600);
  pinMode(sw, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  int value = digitalRead(sw);
  Serial.println(value);

  if ( value == 1){
    digitalWrite(led, HIGH);
    Serial.println("LED ON");
  }
  delay(100);
}

 

풀다운 스위치를 만들어 평상시엔 value값이0이고 스위치를 눌렸을 때 value값이 1이 되는 회로를 만들었습니다. 그리고 if문을 통해 value값이 1이 되었을 때 ( if ( value == 1) ) if문 안의 코드를 실행시킵니다.

 

이와같이 특수한 조건 ( value값이 1이 되었을 떄 실행 )에서 코드를 동작하는것을 가능하게 하는것이 if문입니다. 그리고 if문에는 항상 같이 사용되는 문법이 있는데 else if문과 else문입니다. else문의 순서도는 아래와 같습니다.

마지막으로 if문과 else if문 그리고 else문을 이용해 간단한 LED 점멸 회로를 연습해보겠습니다.

 

const int sw = 7;
const int led_1 = 11;
const int led_2 = 12;
const int led_3 = 13;
int count = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(sw, INPUT);
  pinMode(led_1, OUTPUT);
  pinMode(led_2, OUTPUT);
  pinMode(led_3, OUTPUT);
}

void loop()
{
  int value = digitalRead(sw);
  // Serial.println(value);              // 화면을 가려서 주석

  if ( value == 1){                      // 버튼을 누르고 있으면 count값 증가
    count++;
    Serial.print("count = ");
    Serial.println(count);
  }

  if ( count < 10 ) {                    // count가 10 미만이면 실행
    digitalWrite(led_1, HIGH);
    Serial.print("RED LED ON");
  }
  else if ( count < 20 ){               // count가 10 미만이 아니고 20미만이면 실행
    digitalWrite(led_2, HIGH);
    Serial.print("GREEN LED ON");
  }
  else{
    digitalWrite(led_3, HIGH);       // count가 10 미만이 아니고 20미만도 아니면 실행
    Serial.print("BLUE LED ON");
  }
  delay(100);
}

 

회로도와 동작 영상입니다.

평상시엔 value값이0이고 스위치를 눌렸을 때 value값이 1이 되는 회로를 만들었습니다. 그리고 if문을 통해 value값이 1이 되었을 때 count 변수의 값을 1 증가시킵니다( count++ ).

 

새로운 if문을 통해 count값이 10미만이라면 빨간 led를 동작하고 10미만이 아니면서 20미만이라면 (11~19) else if문을 통해 초록 led를 동작시킵니다. 그리고 10미만도 아니고 20미만도 아니라면 ( 20~ ) 파란 led를 동작시키는 알고리즘을 만들었습니다.

 

이번에 실습한 예제와같이 간단한 프로그램을 만들때도 if제어문은 큰 도움이됩니다. 프로그램이 커지고 복잡해질수록 제어문을 프로그램에서 빠질 수 없는 존재입니다.

 

다음 시간에는 아두이노 반복 제어문 (for)을 제어하는 방법에대해 학습하겠습니다.

 

궁금한점을 질문해주시면 성심성의껏 답변해드리겠습니다.

 

읽어주셔서 감사합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band