[아두이노] 내장 풀업 저항 사용하기

풀업 모드 디지털 입력 사용하기

INPUT_PULLUP을 이용한 pinMode() 함수 사용법에 대해서 알아 보겠습니다. 스위치가 닫히면 pin13에 연결된 내장 LED를 켜고, 스위치가 열린 상태이면 내장 LED를 끄도록 하겠습니다.


실험에 필요한 하드웨어는 아래와 같습니다.

- 아두이노 보드

- 스위치


스위치의 한 단자는 아두이노의 그라운드에 연결하고 스위치의 다른 단자는 2번 핀에 연결합니다. 스위치를 누르면 그라운드와 핀 2번이 연결될 것입니다. 


아두이노의 내부 풀업저항은 아래와 같은 구조로 되어 있습니다.


스위치가 눌려지면 오른쪽 그림과 같이 내부 5V 전압은 스위치를 거쳐 그라운드와 연결되기 때문에 2번 입력핀은 LOW 상태가 됩니다. 스위치가 OPEN 상태이면 오른쪽 그림과 같이 5V 전압과 2번 입력핀이 연결되어 2번 입력핀이 HIGH 상태가 됩니다.


void setup() {
  // 시리얼 모니터 연결용
  Serial.begin(9600);

  // 2번핀을 풀업저항 입력으로 세팅
  pinMode(2, INPUT_PULLUP);

  // 내부 LED 사용, 스위치가 눌려지면 LED ON, 열리면 LED OFF
  pinMode(13, OUTPUT);

}

void loop() {
  // 2번핀에 연결된 스위치 상태를 읽음
  int sensorVal = digitalRead(2);
  // 시리얼 모니터로 2번핀 상태를 출력
  Serial.println(sensorVal);

  // 풀다운 방식과는 다르게 스위치가 닫히면 0, 스위치가 오픈되면 1
  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } else {
    digitalWrite(13, HIGH);
  }
}

끝.

댓글

이 블로그의 인기 게시물

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

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

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

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

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

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

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

공압회로 기호

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

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