[아두이노] 디지털 입출력 (풀다운)

아두이노 Digital I/O


아두이노의 디지털 입력을 받아서 LED를 구동시켜 보겠습니다.


실습 하드웨어 구성은 아래와 같습니다.

- 아두이노 우노 보드

- 스위치

- 10kΩ 저항

- 220Ω 저항

- LED


우선 코드는 아래와 같습니다.

int pushButton = 2; //스위치 입력핀
int led = 8; //LED 출력핀

void setup() {
    pinMode(pushButton, INPUT);
    pinMode(led, OUTPUT);
}

void loop() {
    int buttonState = digitalRead(pushButton); //스위치 상태 읽기
    if (buttonState) {
        digitalWrite(led, HIGH); //스위치가 눌렸으면 LED 켜기
    } else {
        digitalWrite(led, LOW); // LED 끄기
    }
    
    delay(30); //스위치 상태 안정화를 위한 딜레이
}

동작결과는 아래와 같습니다.



회로를 보면 아두이노의 5V핀에서 나온 선이 스위치를 거쳐 2번 핀으로 연결됨과 동시에, 10kΩ 저항을 거쳐 GND로 연결됨을 알 수 있습니다. 스위치가 ON되면 5V 전압의 전류는 2번 입력핀으로 흐르게 되며, 스위치가 OFF되면 2번핀에 있던 전자들이 10kΩ=>GND 라인을 통해 열로 소비되면서 2번핀의 상태를 0V로 만들게 됩니다. 이렇게 스위치가 OFF된 경우 0V로 만들기 위해 사용하는 저항을 풀다운(pull-down) 저항이라고 합니다. 또는 반대로 스위치가 OFF된 경우 5V로 유지시키는 방법도 있으며 풀업(pull-up)이라고 하며 여기서는 다루지 않습니다.

위 예에서 풀다운 저항을 사용하지 않으면, 스위치를 ON한 뒤에 OFF 하는 경우 ON-OFF가 불확실해지는 상태가 되고 결과적으로 스위치가 OFF임에도 발광이 될 수 있습니다. 이러한 경우 스위치와 연결된 2번 핀이 플로팅(floating) 상태라 합니다.

끝.

댓글

이 블로그의 인기 게시물

[PLC] PLC 아날로그 입출력 기본

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

공압 속도 제어: 미터인 vs 미터아웃

[PLC] 채터링 현상과 입력 필터

제너 다이오드에 저항을 연결하는 이유

[python] 파이썬 pyplot 2차원 그래프 샘플 코드

[PLC] 래더 다이어그램과 PLC

공압회로 기호

[PLC] PLC 입출력 타입 - 싱크 & 소스 (Sink & Source)

3선 결선식 센서의 타입 PNP, NPN