본문 바로가기

Arduino

[Arduino] 스위치 실습: 플로팅(Floating) 현상 이해하기

반응형

플로팅(Floating) 현상 이해하기


(준비물)

아두이노 우노(Arduino Uno)

USB 케이블

스위치 모듈

점퍼 케이블

 

▲ 아두이노 우노, USB 케이블
▲ 스위치 모듈, 점퍼 케이블


(회로 연결)

 

 


int switch_pin = 8;

void setup(){
  Serial.begin(9600);

  pinMode(switch_pin, INPUT);  // 입력핀 설정
}

void loop(){
  int read_switch = digitalRead(switch_pin);  // switch_pin 데이터를 읽고 read_switch 변수에 저장

  Serial.println(read_switch);                // read_switch 값 출력
  delay(100);
}

 

위와 같이 회로를 구성하고 코드를 작성하면,

이론적으로는 스위치를 눌렀을 때 8번 핀은 VCC와 연결되어 1(HIGH)이 출력되고, 스위치를 누르지 않으면 8번 핀은 VCC와 차단되어 0(LOW)이 출력되어야 한다. 하지만 실제로 실행해보면, 스위치를 누르지 않았을 때 8번 핀에서는 1(HIGH)과 0(LOW)이 불안정하게 출력된다

이렇게 1(HIGH)도 아니고 0(LOW)도 아닌 값을 가지고 있는 상태가 되는 것을 플로팅 현상이라고 한다.

플로팅 현상은 원치 않는 결과를 불러오는 등 오작동을 일으키는 원인이 되기 때문에 풀업 또는 풀다운 저항을 연결하여 해결해야 한다. 즉, 입력 핀을 정확하게 VCC나 GND에 연결해 주어야 한다.

반응형