반응형
🎚 아두이노 아날로그 입력으로 LED 밝기 조절하기 — 가변저항 + PWM 제어
아두이노의 아날로그 입력 핀을 통해 외부 신호를 읽고, 그 값을 이용해 LED 밝기를 제어하는 실습을 해보겠습니다.
이번 실습에서는 가변저항(포텐셔미터)을 사용하여 아날로그 값을 입력받고, 이를 PWM 출력으로 변환해 LED 밝기를 부드럽게 변화시킬 것입니다.
🧰 준비물
- 아두이노 UNO
- 브레드보드
- 가변저항(포텐셔미터) 1개
- LED 1개
- 220Ω 저항
- 점퍼 와이어
🔌 회로 연결
- 가변저항 양쪽 → 5V, GND
- 가변저항 중앙 → A0 (아날로그 입력)
- D9 → 220Ω → LED → GND (PWM 출력 핀)
💻 코드 작성: 아날로그 → PWM 변환
int potPin = A0; // 가변저항 입력 핀 int ledPin = 9; // PWM 출력 핀 int value = 0; // 읽은 아날로그 값 저장 변수 void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); // 디버깅용 시리얼 출력 } void loop() { value = analogRead(potPin); // 0~1023 읽기 int brightness = map(value, 0, 1023, 0, 255); // PWM 범위로 변환 analogWrite(ledPin, brightness); // 밝기 조절 Serial.print("Potentiometer: "); Serial.print(value); Serial.print(" → Brightness: "); Serial.println(brightness); delay(50); }
map()
함수를 이용해 아날로그 값(0~1023)을 PWM에 맞게 0~255로 변환합니다.
💡 PWM이란?
PWM(Pulse Width Modulation)은 아날로그처럼 보이는 신호를 디지털 방식으로 흉내내는 기술입니다. LED의 밝기를 제어할 때 전압을 조절하는 대신, ON/OFF 시간을 조절하여 사람 눈에는 밝기가 조절되는 것처럼 보이게 됩니다.
✅ 실습 체크 포인트
- 가변저항을 돌리면 LED 밝기가 부드럽게 조절되는지 확인
- 시리얼 모니터에 값이 잘 출력되는지 확인
- map 함수 없이 직접 값 조절도 가능
📚 마무리
이번 실습을 통해 아날로그 입력 → PWM 출력
다음 5편에서는 **버튼 2개로 밝기를 단계적으로 조절하는 구조**로 넘어가면서 입력 제어의 다양성과 소프트웨어 로직 설계까지 함께 배워볼 예정입니다 😊
반응형
'아두이노' 카테고리의 다른 글
아두이노로 부저 제어하기 — 비프음 출력 & 멜로디 연주 (0) | 2025.04.18 |
---|---|
버튼 2개로 LED 밝기 단계 조절하기 — PWM 제어 심화 실습 (0) | 2025.04.18 |
아두이노 버튼 입력으로 LED 제어하기 — 디지털 입력 & 토글 제어 실습 (0) | 2025.04.18 |
아두이노 GPIO 제어: 외부 LED 회로 연결과 코드 실습 (0) | 2025.04.18 |
아두이노 입문자를 위한 첫 걸음: 기본 개념과 개발환경 소개 (0) | 2025.04.18 |