푸시버튼(Push Button)
- 버튼을 누르면 상태가 변경되고(연결됨) 누르지 않으면 원래상태(끊어짐) 으로 돌아옴
- 네개의 단자로 구성 2개씩 연결되어 있음
작동원리
- 팅커캐드 화면에서 푸시 버튼 선택
- 버튼은 1-3 과 2-4가 서로 연결되어 있음
회로구성하기
- 버튼을 누르면 LED가 ON되고 버튼을 때면 LED가 꺼지는 회로
- 스위치의 입력을 7번에 입력하고 LED를 8번에 연결하는 회로 구성
- LED 저항은 330Ω, 스위치의 풀다운 저항은 10kΩ
int redPin=8;
int swiPin=7;
void setup()
{
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(swiPin, INPUT);
}
void loop()
{
int readStatus = digitalRead(swiPin);
Serial.println(readStatus);
if(readStatus ==HIGH){
digitalWrite(redPin, HIGH);
}
else{
digitalWrite(redPin, LOW);
}
}
플로팅 전압 + 풀업 저항+ 풀다운 저항
- 다음과 같이 회로를 구성하고 코드를 7번 핀으로 들어오는 전압값을 확인해보자
- 다음과 같이 회로를 구성할 수 있다.
int swiPin=7;
void setup()
{
Serial.begin(9600);
pinMode(swiPin, INPUT);
}
void loop()
{
int readStatus = digitalRead(swiPin);
Serial.println(readStatus);
}
- 스위치 버튼을 누르지 않았을때(0)와 눌렀을때(1) 값이 다르게 나타남
- 회로를 다음과 같이 저항을 제거하고 바로 음극으로 선을 연결
- 스위치 버튼을 누르지 않았을때(0)와 눌렀을때(0) 값이 동일
- 스위치를 누르지 않으면 GND에서의 0값이 디지털 입력 0으로 입력되어 0
- 스위치를 누를면 5V전압값이 스위치를 따라 5V값이 인가되고 GND와 7번 pin 두곳 가운데 한곳으로 전압이 흘러가야 하는데 GND는 아무런 장벽이 없고, 7번핀은 아주 작은 장벽이라도 존재하므로 5V가 인가된 전압은 GND로 흐르게 되고 7번핀에는 0의 값만 들어오게 됨
- 회로를 다음과 같이 구성하면 시리얼 입력으로 1이 계속 입력된다.
- 다음과 같이 회로를 변경하여도 계속 1값이 입력으로 들어옴
- 실제 아두이노에서는 0과 1일 번갈아 가며 들어옴 : 플로팅 현상
- 이러한 이유로 저항을 사용하여 버튼의 입력을 받는다 : pull up 또는 pull down 이라고 한다
- 이러한 역할을 하는 저항은 값이 커야 한다. 10kΩ의 저항을 사용
'Embedded > Arduino' 카테고리의 다른 글
01. Arduino 설치하기 (0) | 2021.06.09 |
---|---|
초음파센서+브라킷+서보모터 (0) | 2021.05.26 |
Servo 제어 (0) | 2020.11.21 |
CH08 -1) 푸시버튼 사용하기 - II (0) | 2020.10.23 |
CH06 - 1)피에조(Piezo) 스피커 (0) | 2020.10.10 |