페이지

2025년 12월 11일 목요일

2.2.4. 버튼의 내부 풀업 저항 연결

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

아두이노로 회로를 꾸미다 보면 이런 생각 한 번쯤 해보셨을 거예요. "아, 이 작은 저항 하나 때문에 전선이 너무 엉키고 복잡해 보여!" 맞아요, 특히 브레드보드의 좁은 공간에 저항을 꽂는 건 꽤나 번거로운 일이죠.

그런데 사실 우리 아두이노 칩 안에는 아주 작은 '투명 저항'이 이미 숨겨져 있다는 사실, 알고 계셨나요? 오늘은 바로 이 아두이노의 비밀 기능을 활용해서, 외부 저항 없이 버튼을 연결하는 마법 같은 방법을 배워볼 거예요. 회로는 깔끔해지고 실수는 줄어드는 '내부 풀업 저항'의 세계로 함께 떠나볼까요?

Slide 1: 04. 버튼의 내부 풀업 저항 연결

이번 시간에는 2장 기본 부품과 C언어 체험하기의 네 번째 주제, 버튼의 내부 풀업 저항 연결에 대해 알아볼 거예요. 외부 저항을 사용하는 대신, 아두이노 내부에 있는 저항을 코드로 활성화해서 사용하는 아주 스마트한 방법이랍니다.

Slide 2: 회로가 이렇게 간단해진다고요?

내부 풀업 저항 방식의 가장 큰 장점은 바로 '단순함'이에요. 슬라이드에 정리된 장점들을 보세요!

장점

  • 외부 저항 불필요: 가장 큰 장점이죠! 저항을 찾고, 꽂는 수고가 사라져요.
  • 회로 구성이 간단: 부품이 줄어드니 회로가 눈에 띄게 단순해져요.
  • 배선 복잡도 감소: 전선 연결이 줄어들어 엉킬 일이 없고, 실수할 확률도 낮아져요.

✅ 준비물

준비물도 정말 간단해요. `아두이노`, `푸시 버튼`, `브레드보드` 그리고 약간의 전선만 있으면 끝!

✅ 회로 구성

슬라이드 오른쪽 그림처럼 회로를 구성해 보세요. 정말 믿기지 않을 정도로 간단해요.

  1. 푸시 버튼을 브레드보드에 꽂아주세요.
  2. 버튼의 한쪽 다리는 아두이노 10번 핀에 연결해요.
  3. 버튼의 반대쪽 다리는 GND(Ground)에 연결해요.

이게 끝입니다! 외부 저항이 아예 없어요! 정말 깔끔하죠?

Slide 3: 마법의 주문, INPUT_PULLUP

회로가 간단해졌으니, 코드도 간단해야겠죠? 놀랍게도 코드는 딱 한 단어만 바꾸면 된답니다.

✅ 소스 코드 핵심

CODE 2.5 | 내부 풀업 저항 설정
01void setup() {
02  Serial.begin(9600);
03  pinMode(10, INPUT_PULLUP); // "10번 핀을 입력 모드로 쓰는데, 내부 저항도 같이 켜줘!"
04}
05 
06void loop() {
07  Serial.println(digitalRead(10));
08}

핵심은 바로 setup() 함수 안에 있는 pinMode() 설정이에요. 기존에는 버튼 핀을 INPUT으로 설정했었죠? 이번에는 INPUT_PULLUP이라고 적어주세요.

  • pinMode(10, INPUT_PULLUP);

이 코드는 아두이노에게 "10번 핀을 입력 모드로 사용할 건데, 네 뱃속에 숨겨진 풀업 저항을 연결해서 활성화해 줘!" 라고 명령하는 것과 같아요. 이 마법의 주문 하나로, 우리는 외부 저항 없이도 안정적으로 버튼 신호를 읽을 수 있게 되는 거죠.

✅ 결과 확인

코드를 업로드하고 시리얼 모니터를 열어보세요. 이전에 외부 풀업 저항을 연결했을 때와 동작 결과가 완전히 똑같을 거예요.

  • 평소 (버튼 안 누름): 시리얼 모니터에 1이 출력돼요. (내부 저항이 전압을 5V로 당겨주고 있어요)
  • 버튼 누름: 시리얼 모니터에 0이 출력돼요. (전류가 GND로 흘러나가요)

눈에 보이는 저항은 없지만, 아두이노 내부에서 풀업 저항 회로가 완벽하게 작동하고 있다는 증거랍니다!

Slide 4: 앞으로는 무조건 '내부 풀업' 입니다! (중요)

지금까지 우리는 틴커캐드 같은 시뮬레이터로 실습해서 저항을 마우스로 끌어다 놓으면 그만이었죠. 하지만 실제 부품으로 회로를 만들다 보면 이야기가 달라져요. 작은 저항 하나 때문에 배선이 복잡해지고, 실수도 잦아지거든요.

그래서 앞으로 우리 강의에서는 버튼을 사용할 때 항상 '내부 풀업' 방식을 사용할 것을 강력히 권장하고, 또 그렇게 실습할 예정이에요. 회로가 간단해지고 실수를 줄여주는 정말 유용한 기능이니까요!

⚠️ 여기서 잠깐! 꼭 기억해야 할 주의사항

내부 풀업 방식은 정말 편리하지만, 딱 한 가지 기억해야 할 특징이 있어요. 바로 결과값이 우리가 생각하는 것과 반대로 나온다는 점이에요. 마치 '청개구리' 같다고 생각하면 쉬워요.

  • 버튼을 안 눌렀을 때 (평소): 1 (HIGH)
  • 버튼을 눌렀을 때 (동작): 0 (LOW)

나중에 코딩하다가 "어? 왜 버튼을 눌렀는데 0이 나오지?" 하고 당황하지 마세요! "아하! 우리가 쓰기로 약속한 '내부 풀업' 방식이라 결과가 반대구나!" 하고 자연스럽게 넘어가시면 됩니다. 이 '청개구리' 특징만 잘 기억해두면, 앞으로 버튼 다루는 일이 훨씬 쉬워질 거예요.

오늘은 아두이노의 숨겨진 보물, '내부 풀업 저항' 기능에 대해 배워봤어요. 복잡한 저항 연결 없이, 코드 한 줄로 버튼 회로를 깔끔하게 구성하는 방법을 익혔습니다. 앞으로 여러분의 아두이노 프로젝트가 한결 더 깔끔하고 편리해질 거예요!

'청개구리'처럼 결과값이 반대로 나온다는 점만 꼭 기억해주시고요. 다음 시간에는 더 재미있는 내용으로 돌아오겠습니다. 모두들 즐거운 코딩 하세요! 👋

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

댓글 없음:

댓글 쓰기