페이지

2025년 12월 10일 수요일

2.2.3. 버튼의 풀업 저항 연결

안녕하세요! 여러분의 AI-IT 멘토, '파이컴'입니다. 😊

지난 시간에는 버튼을 '풀다운(Pull-down)' 방식으로 연결해서 "누르면 1(HIGH), 떼면 0(LOW)" 신호를 만드는 법을 배웠어요. 아주 직관적이라 이해하기 쉬우셨죠?

오늘은 그 반대, 마치 청개구리처럼 동작하는 '풀업(Pull-up)' 저항 연결 방식에 대해 알아볼 거예요. "평소에는 1, 누르면 0"이 되는 신기한 방식이죠. 왜 이렇게 반대로 동작하는지, 그 비밀을 오늘 완전히 파헤쳐 봅시다!

Slide 1: 03. 버튼의 풀업 저항 연결

자, 오늘의 주제는 '버튼의 풀업 저항 연결'입니다.

'풀다운'이 저항이라는 밧줄을 바닥(GND)에 묶어두는 방식이었다면, '풀업'은 반대로 저항 밧줄을 천장(5V)에 묶어두는 방식이라고 생각하면 쉬워요. 이렇게 연결하면 버튼이 이전과 정반대로 행동하게 된답니다.

Slide 2: 버튼의 풀업 저항 연결 실습

먼저 회로를 구성하며 차근차근 시작해 볼까요?

① 준비물

  • 아두이노 우노
  • 푸시 버튼
  • 10kΩ 저항
  • 작은 브레드보드
  • 점퍼선

② 회로 구성

이번에 구성할 풀업 회로는 풀다운과 딱 한 가지가 달라요. 바로 저항의 위치죠!

[풀업 회로 연결법]

  1. 저항의 한쪽 다리는 5V에 연결해요. (풀다운은 GND였죠?)
  2. 버튼의 한쪽 다리는 GND에 연결해요.
  3. 아두이노 10번 핀(신호선)저항과 버튼이 만나는 지점에 정확히 꽂아주세요.

교재의 그림을 보면, 아두이노 10번 핀에서 나온 녹색 선이 저항의 다리와 버튼의 다리가 만나는 교차 지점에 정확히 꽂혀 있는 걸 볼 수 있어요. 이 부분이 가장 중요하니 꼭 확인해주세요!

회로 연결이 끝났다면 이제 코드를 업로드할 차례입니다. 그런데... 놀라지 마세요!

소스 코드

CODE 2.4 | 버튼의 풀업 저항 연결 코드
01void setup() {
02  Serial.begin(9600); // "컴퓨터와 9600 속도로 대화할 준비 완료!"
03  pinMode(10, INPUT); // "10번 핀에 버튼을 연결했으니 신호를 읽을게!"
04}
05 
06void loop() {
07  Serial.println(digitalRead(10)); // "10번 핀 상태를 보여줘!"
08}

코드를 보세요! 지난 시간에 사용했던 풀다운 저항 연결 코드와 완전히 똑같습니다! 바뀐 부분이 하나도 없어요.

"어? 코드가 똑같은데 어떻게 다르게 동작하죠?"

바로 이게 핵심이에요. 소프트웨어는 그대로 두고, 하드웨어(회로) 연결 방식만 바꿨을 뿐인데 결과가 완전히 달라지는 거죠. 아두이노의 재미가 바로 이런 데 있답니다.

결과

코드를 업로드하고 [시리얼 모니터]를 열어보세요. 정말 청개구리 같은 결과가 나타날 거예요.

  • 평소 (버튼을 안 누름): 시리얼 모니터에 숫자 1이 계속 출력됩니다.
  • 버튼 누름: 버튼을 꾹 누르는 동안 숫자 0이 출력됩니다.

풀업 저항 회로에서는 "가만히 있으면 참(1), 누르면 거짓(0)"이 되는 셈이죠. 신기하지 않나요? 이제 왜 이런 결과가 나오는지 그 원리를 파헤쳐 보겠습니다.

Slide 3: 전기 흐름의 원리 (1) - 풀다운 방식 복습

풀업을 이해하려면 먼저 풀다운의 원리를 다시 한번 짚고 넘어가야 해요. 모든 비밀은 '전기의 흐름'에 숨어 있거든요.

전기의 핵심 원리 2가지

  1. 전기는 물과 같아서 높은 곳(5V)에서 낮은 곳(GND)으로 흘러요.
  2. 전기는 '저항이 없는 편한 길'을 엄청나게 좋아해요.

풀다운 방식에서는,

  • 버튼을 뗐을 때 (OFF): 5V로 가는 길이 끊겨있죠. 아두이노 핀은 저항을 통해 땅(GND)하고만 연결되어 있으니 "아, 나는 땅에 있구나!" 하고 0 (LOW) 신호를 읽어요.
  • 버튼을 눌렀을 때 (ON): 5V에서 아두이노 핀으로 가는 고속도로가 열려요! 전기가 콸콸 쏟아져 들어오니 "앗! 5V 전기가 들어온다!" 하고 1 (HIGH) 신호를 읽게 됩니다.

Slide 4: 전기 흐름의 원리 (2) - 풀업 방식의 비밀

자, 드디어 오늘의 하이라이트! 풀업 방식의 비밀을 밝혀볼 시간입니다.

풀업 방식에서는 왜 반대로 동작할까요?

  • 버튼을 뗐을 때 (OFF)
    • 이번엔 땅(GND)으로 가는 길이 끊겨 있어요.
    • 아두이노 10번 핀은 저항을 통해 하늘(5V)하고만 연결되어 있죠.
    • 그래서 아두이노는 "어? 나는 5V랑 연결됐네?"라고 인식하고 1 (HIGH) 신호를 출력해요.
  • 버튼을 눌렀을 때 (ON)
    • 이게 핵심이에요! 버튼을 누르면 저항이 없는 '뻥 뚫린 고속도로'가 땅(GND)까지 생겨요.
    • 전기는 '저항이 있는 아두이노 핀' 쪽과 '저항이 없는 버튼 쪽(GND)' 두 갈래 길을 마주하게 돼요.
    • 전기는 무조건 편한 길을 선택하죠! 그래서 모든 전기가 저항이 없는 버튼 쪽으로 달려가 GND로 몽땅 빠져나가 버립니다. 마치 모든 물이 배수구로 빠져나가듯이요!
    • 결국 아두이노 핀 쪽으로는 전기가 거의 흐르지 않게 되고, 아두이노는 "어라? 전기가 다 도망갔네? 난 빈털터리야."라고 생각하며 0 (LOW) 신호를 읽게 되는 거랍니다.

어떠셨나요? 오늘은 풀다운과 정반대로 동작하는 풀업 저항 연결 방식에 대해 배워봤어요.

  • 풀다운: 평소 0, 누르면 1 (저항을 GND에 연결)
  • 풀업: 평소 1, 누르면 0 (저항을 5V에 연결)

결국 두 방식 모두 버튼의 상태를 안정적으로 읽기 위한 방법이지만, 회로 구성에 따라 신호가 반대가 된다는 점이 정말 흥미롭죠? 이제 여러분은 필요에 따라 풀다운과 풀업을 자유자재로 선택해서 사용할 수 있게 되었습니다!

다음 시간에는 더 재미있는 부품으로 찾아올게요. 궁금한 점이 있다면 언제든지 댓글로 질문해주세요! 😉

이 포스팅의 내용은 교재 [주니어 공학교실 아두이노의 기초]에 수록된 내용입니다.

댓글 없음:

댓글 쓰기