Arduino-연결 스위치

푸시 버튼 또는 스위치는 회로에서 두 개의 개방 단자를 연결합니다. 이 예제는 핀 8에 연결된 푸시 버튼 스위치를 누르면 핀 2의 LED를 켭니다.

풀다운 저항

풀다운 저항은 외부 장치가 분리되거나 높은 임피던스에있는 경우 Arduino에 대한 입력이 예상되는 논리 수준으로 안정되도록 전자 논리 회로에 사용됩니다. 입력 핀에 아무것도 연결되어 있지 않기 때문에 이것이 논리 제로라는 의미는 아닙니다. 풀다운 저항은 접지와 장치의 해당 핀 사이에 연결됩니다.

디지털 회로에서 풀다운 저항의 예가 다음 그림에 나와 있습니다. 푸시 버튼 스위치는 공급 전압과 마이크로 컨트롤러 핀 사이에 연결됩니다. 이러한 회로에서 스위치가 닫히면 마이크로 컨트롤러 입력은 논리적으로 높은 값이지만 스위치가 열리면 풀다운 저항이 입력 전압을 접지 (논리적 제로 값)로 끌어내어 입력에서 정의되지 않은 상태.

풀다운 저항은 논리 회로의 임피던스보다 더 큰 저항을 가져야합니다. 그렇지 않으면 전압을 너무 많이 낮추고 핀의 입력 전압이 스위치 위치에 관계없이 일정한 논리적 낮은 값으로 유지됩니다.

필요한 구성 요소

다음 구성 요소가 필요합니다-

  • 1 × Arduino UNO 보드
  • 1 × 330 ohm 저항
  • 1 × 4.7K 옴 저항 (풀다운)
  • 1 × LED

순서

회로도에 따라 아래 그림과 같이 연결하십시오.

스케치

컴퓨터에서 Arduino IDE 소프트웨어를 엽니 다. Arduino 언어로 코딩하면 회로가 제어됩니다. 새로 만들기를 클릭하여 새 스케치 파일을 엽니 다.

Arduino 코드

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
   // initialize the LED pin as an output:
   pinMode(ledPin, OUTPUT);
   // initialize the pushbutton pin as an input:
   pinMode(buttonPin, INPUT);
}

void loop() {
   // read the state of the pushbutton value:
   buttonState = digitalRead(buttonPin);
   // check if the pushbutton is pressed.
   // if it is, the buttonState is HIGH:
   if (buttonState == HIGH) {
      // turn LED on:
      digitalWrite(ledPin, HIGH);
   } else {
      // turn LED off:
      digitalWrite(ledPin, LOW);
   }
}

참고할 코드

스위치가 열리면 (푸시 버튼을 누르지 않음) 푸시 버튼의 두 단자 사이에 연결이 없으므로 핀이 풀다운 저항을 통해 접지에 연결되고 LOW를 읽습니다. 스위치가 닫히면 (푸시 버튼을 누름) 두 단자 사이를 연결하여 핀을 5V에 연결하여 HIGH를 읽습니다.

결과

누름 버튼을 누르면 LED가 켜지고 손을 떼면 꺼집니다.