본문 바로가기

아두이노

버튼과 가변 저항기를 사용한 LED 색상 및 밝기 제어

반응형

버튼과 가변 저항기를 사용하여 LED의 색상과 밝기를 제어하는 아두이노 프로젝트에 대한 상세 지침을 제공하겠습니다.

1. 이론 소개

이 프로젝트에서는 버튼을 사용해 LED의 색상을 변경하고, 가변 저항기(포텐쇼미터)를 사용해 밝기를 조절합니다. 아날로그 신호를 읽어 디지털 출력으로 변환하는 방식을 사용합니다.

2. 준비물

  • 아두이노 보드 (Uno, Mega 등)
  • RGB LED
  • 버튼
  • 가변 저항기 (10kΩ)
  • 저항 (220Ω)
  • 점퍼 와이어
  • 브레드보드

3. 비슷한 센서 모델

  • 가변 저항기: 다양한 저항값의 모델 사용 가능 (예: 10kΩ, 50kΩ)

4. 추천 보드 및 간단한 설명

  • 아두이노 Uno: 다양한 프로젝트에 적합하며 초보자에게 친숙
  • 아두이노 Mega: 더 많은 I/O 핀을 제공, 복잡한 프로젝트에 적합

5. 회로 구성

  1. RGB LED의 각 색상 핀을 아두이노의 PWM 핀에 연결 (예: 핀 9, 10, 11)
  2. 버튼을 디지털 입력 핀에 연결 (예: 핀 2)
  3. 가변 저항기의 중앙 핀을 아날로그 입력 핀에 연결 (예: A0)
  4. 모든 GND와 저항을 적절히 연결

6. 코딩 내용

 

const int redPin = 9; // RGB LED 레드 핀
const int greenPin = 10; // 그린 핀
const int bluePin = 11; // 블루 핀
const int buttonPin = 2; // 버튼 핀
const int potPin = A0; // 가변 저항기 핀

int buttonState = 0; // 버튼 상태
int colorMode = 0; // 색상 모드

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    colorMode++; // 버튼 누름 시 색상 모드 변경
    if (colorMode > 2) {
      colorMode = 0;
    }
    delay(200); // 디바운싱 대기
  }

  int potValue = analogRead(potPin); // 가변 저항기 읽기
  int brightness = map(potValue, 0, 1023, 0, 255); // 밝기 변환

  if (colorMode == 0) {
    analogWrite(redPin, brightness);
    analogWrite(greenPin, 0);
    analogWrite(bluePin, 0);
  } else if (colorMode == 1) {
    analogWrite(redPin, 0);
    analogWrite(greenPin, brightness);
    analogWrite(bluePin, 0);
  } else if (colorMode == 2) {
    analogWrite(redPin, 0);
    analogWrite(greenPin, 0);
    analogWrite(bluePin, brightness);
  }
}

 

 

7. 코딩 내용 설명

이 코드는 버튼을 누를 때마다 RGB LED의 색상을 변경하고, 가변 저항기를 통해 밝기를 조절합니다. 색상 모드는 레드, 그린, 블루 순서로 변경됩니다. 밝기는 가변 저항기의 값을 아날로그로 읽어 PWM 신호로 변환하여 LED에 적용합니다.

8. 코드 업로드 및 테스트

  1. 아두이노 IDE에 코드를 입력
  2. 아두이노 보드에 업로드
  3. 버튼을 눌러 색상 변경과 가변 저항기로 밝기 조절 테스트

9. 응용 업그레이드

  • 여러 버튼을 사용해 더 많은 색상 모드 추가
  • 밝기와 색상을 동시에 조절하는 기능
  • 원격 제어 기능 추가 (블루투스 모듈 등)

10. 전문용어 및 설명

  • PWM (Pulse Width Modulation): 디지털 신호의 폭을 변화시켜 아날로그와 같은 효과를 내는 기술
  • 아날로그 신호: 연속적인 값으로 변화하는 신호
  • 디지털 신호: 0과 1로만 이루어진 신호

11. 기타

회로 연결 시 저항을 사용하여 LED를 보호하는 것이 중요합니다. 또한 가변 저항기의 값에 따라 밝기가 크게 달라질 수 있으므로 주의가 필요합니다.

 

반응형