아두이노

아두이노 아날로그 입력으로 LED 밝기 조절하기 — 가변저항 + PWM 제어

게임교수 2025. 4. 18. 07:20
반응형

🎚 아두이노 아날로그 입력으로 LED 밝기 조절하기 — 가변저항 + PWM 제어

아두이노의 아날로그 입력 핀을 통해 외부 신호를 읽고, 그 값을 이용해 LED 밝기를 제어하는 실습을 해보겠습니다.

이번 실습에서는 가변저항(포텐셔미터)을 사용하여 아날로그 값을 입력받고, 이를 PWM 출력으로 변환해 LED 밝기를 부드럽게 변화시킬 것입니다.

🧰 준비물

  • 아두이노 UNO
  • 브레드보드
  • 가변저항(포텐셔미터) 1개
  • LED 1개
  • 220Ω 저항
  • 점퍼 와이어

🔌 회로 연결

  • 가변저항 양쪽 → 5V, GND
  • 가변저항 중앙 → A0 (아날로그 입력)
  • D9 → 220Ω → LED → GND (PWM 출력 핀)

가변저항을 이용한 LED 밝기 조절 회로도

💻 코드 작성: 아날로그 → 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개로 밝기를 단계적으로 조절하는 구조**로 넘어가면서 입력 제어의 다양성과 소프트웨어 로직 설계까지 함께 배워볼 예정입니다 😊

반응형