본문 바로가기
C and C++/C and C++ Examples

[C++ Examples/Arduino] Digital Inputs and If Statements 예제코드 및 설명

by Henry Cho 2024. 1. 15.
728x90

 Digital Inputs by Using Led and Buttons (If Statements) 예제코드 및 설명

포스트 난이도: HOO_Junior


# Example Code

int ledPin = 5;
int buttonApin = 9;
int buttonBpin = 8;

//byte leds = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin, OUTPUT);
  pinMode(buttonApin, INPUT_PULLUP);
  pinMode(buttonBpin, INPUT_PULLUP);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (digitalRead(buttonApin) == LOW){
    digitalWrite(ledPin, HIGH);
  }
  if (digitalRead(buttonBpin) == LOW){
    digitalWrite(ledPin, LOW);
  }
}

# Explanations

이번 예제코드에서는 Led pin과 두 개의 스위치를 사용해서 Led 불빛이 번갈아가며 들어오는 걸 확인할 수 있다. 여기서 말하는 번갈아가며 들어온다는 말은 하나의 스위치로 Led를 켜고 나머지 스위치로 Led 불빛을 꺼주는 걸 의미한다. 예를 들어서 A라고 지정한 스위치 또는 버튼을 눌러서 Led 불을 켜줬다면 B라고 지정한 또 다른 버튼을 눌러서 Led을 꺼줄 수 있다. 하지만 A라고 지정한 버튼을 눌러서 Led를 켜주고 나면 다시 A라는 버튼을 눌러서 Led 등을 꺼줄 수가 없다. 반대로 B 버튼부터 시작할 경우에도 이와 마찬가지로 작동하게 된다. 어렵지 않은 간단한 예제코드이니 아두이노를 다뤄야 하는 브로들은 해당 포스트로 Reivew가 가능할 것으로 본다.

 

우선 3개의 핀(Pins)을 사용할 예정이기 때문에 아두이노 코드에서 3개 핀에 해당하는 variables들을 선언해줘야 한다. Figure 1을 살펴보면 ledPin, buttonApin 그리고 buttonBpin이 각각 선언되어 있는 걸 알 수 있다. 선언된 핀에 부여된 숫자들은 아두이노 보드에서 연결할 핀 번호라고 생각하면 된다. 참고로 아두이노 코딩에서는 C++을 사용하고 있기 때문에 변수의 경우 CamelCase (또는 CamelBack)으로 코드를 작성해주는 편이다.

Figure 1. 핀 선언

 

핀을 선언해주고 나면 아두이노에서 꼭 빠져서는 안되는 setup() function을 설정해줘야 한다. 마찬가지로 3개의 핀을 사용하고 있기에 우리는 pinMode()을 통해서 각각 output과 input 설정을 해주면 된다. 

Figure 2. setup() function

 

setup() function 설정까지 끝났다면 이제 메인 기능을 작성해 주면 된다. 메인에서 우리는 buttionA와 buttonB가 반복적으로 Led 등을 켜거나 끄는 역할을 수행하도록 만들어줄 것이기에 void loop() function에서 if statements를 사용해서 간단한 if 조건문을 만들어주면 된다. 이때 digitalRead와 digitalWrite functions을 사용해서 버튼과 Led등의 상태와 조건이 상호작용을 할 수 있도록 설정해 준다.

Figure 3. void loop() function

 

마지막으로 [Verify]와 [Upload]를 통해서 코드를 컴파일하고 아두이노 보드에 넣어주면 된다.

Figure 4. Verify and upload


# Results

Figure 5. Result of the digital inputs


 

 
728x90

댓글