-
아두이노 디지털 신호 입력 | 택트 스위치Technology/Arduino 2023. 7. 28. 18:00
1. 디지털 신호 입력
아두이노 소프트웨어에서 디지털 신호를 받을 핀을 설정하고 함수를 작성하여 아두이노 하드웨어에 업로드하면, 앞서 설정한 핀을 통해 디지털 신호를 입력 받을 수 있다. 이때 입력 받은 디지털 신호의 전압값에 따라 디지털 신호 1 또는 0으로 인식하는데, 아두이노 우노의 경우 전압 3V 이상의 전압은 디지털 신호 1로 인식하고, 전압 3V 미만의 전압은 디지털 신호 0으로 인식한다.
2. 택트 스위치
택트 스위치는 서로 다른 두 회로 사이에서 두 회로를 전기적으로 연결해주거나 끊어내는 역할을 하는 소자이다. 택트 스위치는 위 그림과 같이 A 단자와 B 단자가 기본적으로 끊어져 있으며, 버튼을 누르고 있는 동안에는 두 단자가 연결되어 두 단자 사이에 전류가 흐를 수 있게 된다. 택트 스위치는 아래 링크로 접속하면 구매할 수 있다.
3. 플로팅
앞서 언급한 바와 같이, 아두이노 하드웨어는 일정 전압 이상의 전압은 디지털 신호 1로 인식하고, 일정 전압 미만의 전압은 디지털 신호 0으로 인식한다. 스위치 주변의 노이즈가 섞이면 디지털 신호의 전압이 상승과 하강을 반복하는데, 해당 디지털 신호를 입력 받으면 디지털 입력값이 하나로 고정되지 않고 0이나 1로 이리저리 떠다닌다. 스위칭 회로에서 이러한 현상을 플로팅(floating)이라 한다. 이를 방지하기 위해 스위치를 저항과 직렬로 연결하여 회로를 구성하는데, 저항이 어디에 연결되어 있는지에 따라 풀업 저항과 풀다운 저항으로 나뉜다.
4. 풀업 저항과 풀다운 저항
스위치와 직렬로 연결된 저항이 전원과 디지털 신호 입력선 사이에 연결되었다면 풀업 저항(pull-up) 회로, 디지털 신호 입력선과 접지 사이에 연결되었다면 풀다운(pull-down) 저항 회로라고 한다. 풀업 저항 회로는 버튼을 누르지 않은 상태에서는 디지털 신호 1, 누른 상태에서는 디지털 신호 0이 입력된다. 반대로, 풀다운 저항 회로는 버튼을 누르지 않은 상태에서는 디지털 신호 0, 누른 상태에서는 디지털 신호 1이 입력된다. 각 회로별로 버튼의 상태에 따른 디지털 신호 입력 결과를 표로 정리하면 다음과 같다.
스위칭 회로 버튼 OFF 버튼 ON 풀업 저항 회로 1 0 풀다운 저항 회로 0 1 5. 예제
5.1. 회로 구성
풀업 저항과 풀다운 저항의 저항값은 디지털 출력과 무관하다. 본 예시에서는 220Ω 저항을 사용하였지만, 다른 저항값을 가진 저항을 사용하여도 괜찮다.
3.2. 프로그램 작성
int value = 0; // 정수형 변수 선언 후 0으로 초기화 void setup() { pinMode(8, INPUT); // 디지털 8번 핀을 입력(INPUT) 모드로 설정 Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600 bps) } void loop() { value = digitalRead(8); // 디지털 8번 핀으로부터 디지털 신호를 입력 받은 후 변수에 저장 Serial.println(value); // 시리얼 모니터에 변수에 저장된 값을 출력한 뒤 줄 바꿈 delay(500); // 500 ms 대기 }
[함께 읽으면 좋은 페이지]
참고문헌
- Mads Aasvik. (2015). Tutorial: Arduino and Buttons. Norwegian Creations. https://www.norwegiancreations.com/2015/11/tutorial-arduino-and-buttons/. 2023.06.14.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 프로젝트 | 어두우면 켜지는 가로등 (0) 2023.08.11 아두이노 아날로그 신호 입력 | 조도센서 (0) 2023.08.04 아두이노 프로젝트 | 신호등 (0) 2023.07.21 아두이노 디지털 신호 출력 | LED (0) 2023.07.14 아두이노 | 회로 기초 지식 (0) 2023.07.14