콘텐츠로 건너뛰기

아두이노 조건문 배우기, 아두이노 기초

    들어가며

    조건문은 프로그래밍에서 중요한 개념 중 하나로, 특정 조건에 따라 다른 동작을 수행할 수 있게 해줍니다. 이번 프로젝트에서는 조건문의 기본 구조와 사용 방법을 알아보고, 간단한 예제를 통해 아두이노 조건문을 활용하는 방법에 대해 알아보겠습니다.

    조건문을 배우면 프로그램이 다양한 상황에 따라 다르게 동작하도록 만들 수 있습니다. 예를 들어, 버튼을 눌렀을 때 LED를 켜거나 센서 값에 따라 경고음을 울리게 하는 등의 작업을 자동화할 수 있습니다. 조건문을 이해하고, 이를 통해 아두이노로 다양한 조건에 따른 동작을 구현하는 것을 목표로 조건문을 배워보도록 하겠습니다.

    준비물

    이번 프로젝트 예제 에서는 내장 LED와 버튼을 사용할거에요

    • 아두이노 보드
    • 버튼 (스위치)
    • 점퍼 선

    조건문을 사용할 땐 비교 연산자를 알면 도움이 됩니다.

    조건문을 사용하는 방법

    조건문은 주어진 조건이 참일 때 코드 블록을 실행합니다. 아두이노에서 가장 많이 사용하는 조건문은 if, else if, else 문입니다. 각각의 구조와 사용 방법을 살펴볼게요.

    if 문

    if 문은 조건이 참일 때만 코드를 실행합니다. 기본 구조는 다음과 같습니다:

    if (조건) {
      // 조건이 참일 때 실행할 코드
    }

    예를 들어, 버튼이 눌렸을 때 내장 LED를 켜려면 다음과 같이 작성할 수 있습니다:

    if (digitalRead(buttonPin) == HIGH) {
      digitalWrite(LED_BUILTIN, HIGH); // LED 켬
    }

    else if 문

    else if 문은 앞의 조건이 거짓일 때, 새로운 조건을 검사합니다. 기본 구조는 다음과 같습니다:

    if (조건1) {
      // 조건1이 참일 때 실행할 코드
    } else if (조건2) {
      // 조건2가 참일 때 실행할 코드
    }

    예를 들어, 버튼이 눌렸을 때 LED를 켜고, 버튼이 눌리지 않았을 때 LED를 끄려면 다음과 같이 작성할 수 있습니다:

    if (digitalRead(buttonPin) == HIGH) {
      digitalWrite(LED_BUILTIN, HIGH); // LED 켬
    } else if (digitalRead(buttonPin) == LOW) {
      digitalWrite(LED_BUILTIN, LOW); // LED 끔
    }

    else 문

    else 문은 모든 조건이 거짓일 때 실행됩니다. 기본 구조는 다음과 같습니다:

    if (조건1) {
      // 조건1이 참일 때 실행할 코드
    } else if (조건2) {
      // 조건2가 참일 때 실행할 코드
    } else {
      // 조건1과 조건2가 모두 거짓일 때 실행할 코드
    }

    예를 들어, 버튼이 눌렸을 때 LED를 켜고, 버튼이 눌리지 않았을 때 LED를 끄는 조건을 else 문을 사용해 작성할 수 있습니다:

    if (digitalRead(buttonPin) == HIGH) {
      digitalWrite(LED_BUILTIN, HIGH); // LED 켬
    } else {
      digitalWrite(LED_BUILTIN, LOW); // LED 끔
    }

    아두이노 조건문 예제

    이번 예제에서는 버튼을 눌렀을 때 내장 LED를 켜고, 버튼을 누르지 않았을 때 LED를 끄는 예제를 만들어 보겠습니다.

    예제 코드 소개

    다음 코드는 조건문을 사용하여 버튼의 상태에 따라 내장 LED를 제어합니다.

    const int buttonPin = 2; // 버튼 핀 번호
    
    void setup() {
      pinMode(LED_BUILTIN, OUTPUT); // 내장 LED를 출력 모드로 설정
      pinMode(buttonPin, INPUT); // 버튼 핀을 입력 모드로 설정
    }
    
    void loop() {
      if (digitalRead(buttonPin) == HIGH) {
        digitalWrite(LED_BUILTIN, HIGH); // 버튼이 눌리면 LED 켬
      } else {
        digitalWrite(LED_BUILTIN, LOW); // 버튼이 눌리지 않으면 LED 끔
      }
    }

    코드 설명

    • setup 함수에서 내장 LED를 출력 모드로 설정하고, 버튼 핀을 입력 모드로 설정합니다.
    • loop 함수에서 if 문을 사용하여 버튼이 눌렸는지 확인하고, LED를 켜거나 끕니다.

    코드 실행 결과 확인

    코드를 실행하면 버튼을 눌렀을 때 내장 LED가 켜지고, 버튼을 누르지 않았을 때는 LED가 꺼집니다.

    버튼을 누르면 LED가 켜지고, 버튼을 떼면 LED가 꺼지는 모습, 아두이노 조건문 예제를 시뮬레이션 한 움직이는 이미지.

    주의점

    조건문을 사용할 때 조건을 정확히 설정해야 합니다. 조건이 잘못 설정되면 코드가 예상대로 동작하지 않을 수 있습니다. 또한, 물리적인 버튼이나 센서를 사용할 때는 디바운싱(debouncing) 처리가 필요할 수 있습니다.

    마무리

    이번 프로젝트에서는 아두이노를 통해 조건문을 배우고, 이를 활용하여 버튼의 상태에 따라 내장 LED를 제어하는 간단한 예제를 만들어 보았습니다. 조건문을 이해하면 다양한 상황에 따라 프로그램이 다르게 동작하도록 만들 수 있습니다. 아두이노 조건문 사용 방법에 대해 다뤄봤는데 도움이 되셨나요? 앞으로 다양한 프로젝트에서 조건문을 활용해 보세요!