본문 바로가기

Arduino 제어

04. 아두이노 내부 풀업 저항 사용하기

 

이전 시간에서 언급했던 플로팅 현상에 대해서, 다른 방법으로 파훼하는 방법을 진행해보도록 합니다.

 

 

 

오늘의 준비물 : 

아두이노 UNO, 브레드보드, 220옴 저항 1개, LED 1개, 스위치 1개, 결선용 선들



이번 시간에는 아두이노의 내부 풀업 저항을 사용하여 이전 시간보다 더욱 간단한 회로도를 구성해보도록 합니다.

소스코드는 아래와 같습니다.

void setup() {
    	pinMode(3, INPUT_PULLUP);  // 3번 핀은 스위치와 연결됩니다. 내부 풀업저항을 사용합니다.
        pinMode(4, OUTPUT);		// 4번핀은 LED와 연결되어있습니다.
}

void loop() {
	int Switch = digitalRead(3);	// digitalRead로 읽은 3번핀의 정보를 1과 0으로만 표현하도록 합니다.
    
    if (Switch = HIGH) {		// 스위치가 HIGH.  1이라는 값을 나타내게되면, LED가 HIGH 가 됩니다.
    	digitalWrite(4, HIGH);
    }
    else {				// 스위치가 HIGH가 아니라면, LED는 LOW가 됩니다.
    	digitalWrite(4, LOW);
    }
}

소스코드는 이렇게 쓰니깐 훨씬 이쁘네요...  이전 글 까지는 이런 기능 있는줄도 몰랐습니다.

 

 

회로도가 누락되었습니다. 죄송합니다. (2022-05-25 조치완료)

 

 

결과는 아래 동영상으로 확인 가능합니다.

내부 풀업저항 #1

PULL UP 저항을 연결을 하게되면, 평상시 1인 상태입니다.
스위치를 누를 경우 0인 상태이기때문에, 영상과 같이 평상시는 LED가 HIGH 상태가 되어있는것을 확인할 수 있습니다.

반대로 PULL DOWN 저항을 연결하게 되면 누를경우 0, 누르지 않았을 경우 1이 출력이 됩니다.

그렇다면,  PULL UP 저항을 사용하는 상태에서는!  어떻게 해야 스위치를 누를때만 LED가 켜질까요?
해답은 바로... HIGH와 LOW의 자리를 서로 바꿔주는것!

if (Switch == HIGH) {
	digitalWrite(4, HIGH);
}
else {
	digitalWrite(4, LOW);
}

코드에서,  스위치가 평상시에 HIGH 상태이기때문에, 스위치를 누르지 않았을때는 LED를 LOW 상태로 자리를 바꿔주기만 하면 됩니다.


아래 코드를 참고하세요.

void setup() {
    	pinMode(3, INPUT_PULLUP);  // 3번 핀은 스위치와 연결됩니다. 내부 풀업저항을 사용합니다.
        pinMode(4, OUTPUT);		// 4번핀은 LED와 연결되어있습니다.
}

void loop() {
	int Switch = digitalRead(3);	// digitalRead로 읽은 3번핀의 정보를 1과 0으로만 표현하도록 합니다.
    
    if (Switch = HIGH) {		// 스위치가 HIGH.  1이라는 값을 나타내게되면, LED가 LOW 가 됩니다.
    	digitalWrite(4, LOW);
    }
    else {				// 스위치가 HIGH가 아니라면, LED는 HIGH가 됩니다.
    	digitalWrite(4, HIGH);
    }
}

 

 

이상, 오늘은 내부 풀업저항에 대해 알아보았습니다.
다음 시간에는,  스위치 2개를 이용하여 LED를 ON/OFF 제어 하는것에 대해 알아보도록 하겠습니다.

 

필요한 자료가 있으시면, 댓글로 남겨주시면 준비하도록 하겠습니다!

도움이 되셨다면 구독&공감 눌러주시면 힘이 나요!

 

Nebu_PullUPreg.ino
0.00MB