아두이노/아두이노 과제

버튼을 통한 LED 제어

펭킹 2024. 7. 17. 15:52
int ButtonState; // 버튼 상태를 저장할 변수

void setup()  
{  
    pinMode(2, INPUT_PULLUP); // 핀 2를 풀업 저항을 사용한 입력으로 설정
    pinMode(13, OUTPUT);      // 핀 13을 출력으로 설정
}

void loop() 
{  
    ButtonState = !digitalRead(2); // 핀 2의 입력 상태를 읽고 반전시켜 ButtonState에 저장
    digitalWrite(13, ButtonState); // ButtonState 값을 핀 13의 출력으로 설정
    delay(1);                      // 1밀리초 지연
}

 

만약 ButtonState를 반전시키지 않았다면 다음과 같이 코드를 작성할 수 있지만, 비효율적이다.

 

int ButtonState;

void setup()  
{  
    pinMode(2, INPUT_PULLUP); 
    pinMode(13, OUTPUT);  
}

void loop() 
{  
    ButtonState = digitalRead(2); // 버튼 상태를 읽어옴
    if (ButtonState == LOW) {     // 버튼이 눌린 상태
        digitalWrite(13, HIGH);   // LED 켜기
    } else {                      // 버튼이 눌리지 않은 상태
        digitalWrite(13, LOW);    // LED 끄기
    }
    delay(1); 
}