아두이노 기초 #3-1: 가변 저항으로 아날로그 세상과 소통하기
안녕하세요! 여러분의 AI-IT 멘토, '파이컴'입니다. 😊
[아두이노 기초] #3-1. 가변 저항으로 아날로그 세상과 소통하기
안녕하세요, IT 멘토입니다! 코딩과 피지컬 컴퓨팅의 세계에 오신 여러분을 환영해요. 😊
지난 시간에는 이론을 통해 아두이노의 기본 원리를 다져보았죠? 오늘은 드디어 직접 손으로 무언가를 만들어보는 시간입니다! 바로 '가변 저항'이라는 부품을 사용해서 아두이노가 어떻게 세상의 변화를 감지하는지 알아볼 거예요.
손잡이를 돌릴 때마다 숫자가 실시간으로 변하는 마법 같은 경험, 지금 바로 시작해볼까요?
Slide 1: 3장 센서로 세상 느끼기 - 가변 저항 회로 구성하기
이번 3장의 주제는 '센서로 세상 느끼기'입니다. 그 첫 번째 주자로 '가변 저항'을 만나볼 거예요. 가변 저항은 가장 기본적이면서도 아날로그 입력의 원리를 이해하는 데 최고의 부품이랍니다.
오늘 우리는 이 가변 저항을 이용해 간단한 회로를 만들고, 아두이노가 그 값을 어떻게 읽어들이는지 직접 확인해보는 실습을 진행할 거예요. 이론은 충분히 배웠으니, 이제 직접 만들어보며 진짜 내 것으로 만들어봐요!
Slide 2: 가변 저항 회로 구성
자, 이제 본격적으로 회로를 구성해볼 시간이에요. 책상 위에 준비물들을 모두 꺼내주세요!
✅ 준비물
- 아두이노 우노
- 가변 저항
- 작은 브레드보드
- (점퍼 와이어 몇 가닥)
✅ 연결 방법
슬라이드 이미지에 보이는 회로도, 처음 보면 조금 복잡해 보일 수 있지만 원리는 정말 간단해요. 가변 저항은 다리가 3개인데, 각각의 역할을 알면 금방 이해할 수 있답니다.
- 양쪽 끝 다리: 5V와 GND에 연결
- 가변 저항의 양쪽 끝에 있는 두 다리를 각각 아두이노의 5V(전원)와 GND(접지)에 연결해주세요.
- 꿀팁!🍯 어느 쪽을 5V에 연결하고 어느 쪽을 GND에 연결할지 헷갈리시나요? 걱정 마세요! 이 둘은 순서가 바뀌어도 고장 나지 않으니 편하게 연결하면 된답니다.
- 가운데 다리: A0 핀에 연결 (⭐가장 중요⭐)
- 가장 중요한 건 바로 가운데 다리예요. 우리가 손잡이를 돌릴 때마다 변화된 전압 값이 바로 이 가운데 다리를 통해 출력되거든요.
- 이 신호를 아두이노가 읽을 수 있도록, 아두이노의 아날로그 입력 핀(A0 ~ A5 중 하나)에 연결해야 해요. 우리는
A0 핀에 연결해볼게요.
정리하자면, 양쪽 다리로 전기를 공급받고, 가운데 다리로 변화된 값을 아두이노에게 알려주는 구조인 셈이죠. 정말 간단하죠?
Slide 3: 가변 저항 값 읽기 코드
하드웨어 연결이 끝났다면, 이제 아두이노에게 명령을 내릴 소프트웨어를 살펴볼 차례예요. "지금 가변 저항 값이 얼마인지 숫자로 알려줘!"라고 말해주는 코드를 함께 분석해봐요.
| 01 | |
| 02 | |
| 03 | void setup() { |
| 04 | |
| 05 | Serial.begin(9600); |
| 06 | } |
| 07 | |
| 08 | void loop() { |
| 09 | |
| 10 | int sensorValue = analogRead(A0); |
| 11 | |
| 12 | |
| 13 | Serial.println(sensorValue); |
| 14 | |
| 15 | |
| 16 | delay(100); |
| 17 | } |
🔍 코드 핵심 분석
Serial.begin(9600);
setup() 함수 안에 있죠? 아두이노가 처음 켜질 때 딱 한 번 실행되는 부분이에요. 이 코드는 아두이노와 우리 컴퓨터가 서로 대화를 시작하겠다고 약속하는 신호랍니다. 9600은 통신 속도를 의미해요.
analogRead(A0);
오늘 실습의 주인공! A0 핀에 연결된 가변 저항의 아날로그 신호(전압 값)를 읽어오는 명령어예요. 아두이노는 이 값을 0부터 1023까지의 숫자로 변환해서 알려준답니다.
Serial.println(sensorValue);
analogRead로 읽어온 값을 컴퓨터 화면에 보여주는 명령어예요. println은 값을 출력하고 한 줄을 바꿔주는(엔터) 역할을 해요.
delay(100);
아두이노는 정말 빨라서 이 명령이 없으면 숫자가 눈에 보이지도 않을 정도로 순식간에 지나가 버릴 거예요. 그래서 delay(100)을 넣어 0.1초(1000 = 1초)씩 쉬어가며 값을 측정하도록 한 거랍니다.
💡 동작 확인
이제 이 코드를 아두이노에 업로드하고, 아두이노 IDE의 오른쪽 위 돋보기 모양 아이콘 '시리얼 모니터'를 켜보세요. 그리고 가변 저항의 손잡이를 천천히 돌려보세요. 시리얼 모니터 창에 0부터 1023 사이의 숫자가 실시간으로 변하는 것을 볼 수 있다면 성공입니다!
Slide 4: 핵심 문법: analogRead() 함수
방금 전 코드에서 봤던 analogRead() 함수, 조금 더 깊이 알아볼까요? 이번 실습의 핵심 개념이거든요.
세상의 빛, 소리, 온도 같은 변화는 0 아니면 1로 딱 떨어지지 않는 연속적인 값(아날로그)을 가져요. analogRead() 함수는 바로 이런 아날로그 신호를 컴퓨터가 이해할 수 있는 숫자(디지털)로 바꿔주는 번역가 역할을 합니다.
✅ 함수 형식
사용법은 간단해요. 괄호 안에 아날로그 신호를 읽어올 핀 번호(A0~A5)만 적어주면 됩니다.
✅ 동작 원리
아두이노 우노는 0V부터 5V 사이의 전압을 입력받을 수 있어요. 그리고 이 전압의 범위를 아주 잘게, 1024단계로 쪼개서 인식한답니다.
- 가변 저항 손잡이를 GND 쪽으로 끝까지 돌리면 0V에 가까운 전압이 입력되고,
analogRead()는 0을 반환해요.
- 손잡이를 중간쯤에 두면 2.5V 정도의 전압이 입력되고,
analogRead()는 중간값인 512를 반환하죠.
- 손잡이를 5V 쪽으로 끝까지 돌리면 5V에 가까운 전압이 입력되고,
analogRead()는 최댓값인 1023을 반환해요. (0부터 시작해서 1024개이므로 최댓값은 1023이랍니다!)
결국 우리가 손잡이를 돌리는 물리적인 행위가 '전압의 변화'를 만들고, analogRead() 함수가 그 변화를 '0~1023'이라는 숫자로 바꿔서 우리에게 보여주는 것이죠.
Outro
어떠셨나요? 오늘은 가변 저항을 이용해 아날로그 신호를 아두이노로 읽어들이는 방법을 배워봤습니다. 눈에 보이지 않는 '전압'이라는 개념을 '숫자'로 직접 확인해보니 피지컬 컴퓨팅의 매력이 조금 더 와닿지 않나요?
이제 여러분은 아날로그 세상의 변화를 숫자로 읽어내는 첫걸음을 뗀 셈이에요. 이 원리를 응용하면 빛의 밝기를 측정하는 조도 센서, 온도를 재는 온도 센서 등 훨씬 더 다양하고 재미있는 프로젝트를 만들 수 있답니다.
다음 시간에는 더 흥미로운 센서로 찾아올게요. 그때까지 오늘 배운 내용, 꼭 한번 직접 만들어보세요! 궁금한 점은 언제든 댓글로 남겨주시고요. :)
댓글 없음:
댓글 쓰기