아두이노 - LED - 페이드 | Arduino - LED - Fade

이 튜토리얼에서 우리는 배우게 될 것입니다:

※ NOTE THAT:

이 튜토리얼은 작동 원리를 이해하는 데 도움이 되는 심층적인 지식을 제공합니다. 쉽게 하기 위해, 아두이노 - LED 라이브러리를 사용할 수 있습니다.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×LED Amazon
1×220 ohm resistor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino Uno 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

LED에 대하여

핀배열

LED에는 두 개의 핀이 포함되어 있습니다:

  • 음극(-) 핀: GND(0V)에 연결해야 합니다.
  • 양극(+) 핀: LED의 상태를 제어하는 데 사용됩니다.
LED Pinout

작동 원리

음극(-)을 GND에 연결한 후에:

  • 양극(+)에 GND를 연결하면, LED는 꺼집니다.
  • 양극(+)에 VCC를 연결하면, LED는 켜집니다.
  • 양극(+)에 PWM 신호를 생성하면, LED의 밝기가 PWM 값에 따라 변경됩니다. PWM 값은 0부터 255까지 변합니다. PWM 값이 클수록 LED는 더 밝아집니다. PWM 값이 작을수록 LED는 더 어두워집니다.
    • PWM 값이 0이면, 그것은 GND와 동일하므로, LED는 꺼집니다.
    • PWM 값이 255이면, 그것은 VCC와 동일하므로, LED는 완전히 켜집니다.
    How LED Works

    ※ NOTE THAT:

    LED의 대부분의 경우, 양극(+)과 VCC 사이에 저항을 사용해야 합니다. 저항의 값은 LED의 사양에 따라 달라집니다.

    아두이노 - LED 페이드

    아두이노의 핀 중 일부는 PWM 신호를 생성하도록 프로그래밍할 수 있습니다. LED의 양극(+) 핀을 아두이노의 핀에 연결하고, LED의 음극(-)을 GND에 연결한 다음, 아두이노의 핀에서 PWM을 생성하도록 프로그래밍함으로써 LED를 점점 밝게 할 수 있습니다.

선연결

Arduino LED Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

프로그래밍하는 방법

Arduino의 핀을 디지털 출력 모드로 설정하려면 pinMode() 함수를 사용하세요. 예를 들어, 핀 9:

pinMode(9, OUTPUT);

analogWrite() 함수를 사용하여 해당 PWM 신호를 생성함으로써 LED의 밝기를 설정합니다.

analogWrite(9, brightness);

밝기는 0부터 255까지의 값입니다.

아두이노 코드 - 아두이노 IDE의 페이드 예제

사용 방법

  • 아두이노를 PC에 USB 케이블로 연결하세요.
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요.
  • 아래 코드를 복사해서 아두이노 IDE에 붙여넣으세요.
/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // Arduino PWM 핀이 연결된 LED int brightness = 0; // LED의 밝기 int fadeAmount = 5; // LED를 얼마나 페이드할지 점수 // 설정 루틴은 리셋을 누를 때 한 번 실행됩니다: void setup() { // 핀 9를 출력으로 선언합니다: pinMode(LED_PIN, OUTPUT); } // 루프 루틴은 영원히 계속 반복 실행됩니다: void loop() { // 핀 9의 밝기를 설정합니다: analogWrite(LED_PIN, brightness); // 다음 루프를 위해 밝기를 변경합니다: brightness = brightness + fadeAmount; // 페이드의 끝에서 페이딩 방향을 반전합니다: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // 어두워지는 효과를 보기 위해 30밀리초를 기다립니다 delay(30); }

Arduino IDE에서 코드를 Arduino로 업로드하려면 Upload 버튼을 클릭하세요.

Arduino IDE Upload Code

LED의 밝기를 보세요.

코드 설명

위의 아두이노 코드의 주석 라인에서 설명을 찾을 수 있습니다.

※ NOTE THAT:

위 예제에서는 delay() 함수를 사용하여 페이드인(fade-in)과 페이드아웃(fade-out)을 실행합니다. delay() 함수는 LED의 페이드를 부드럽지 않게 하며 다른 코드의 실행을 차단합니다. 다음 파트에서는 millis() 함수를 사용하여 다른 코드의 실행을 방해하지 않으면서 부드럽게 페이드인과 페이드아웃을 하는 방법을 배울 것입니다.

지연(delay()) 사용하지 않고 일정 기간 동안 LED를 서서히 꺼지게 하는 방법

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // Arduino PWM 핀이 연결된 LED #define FADE_PEDIOD 3000 // 페이드 시간은 3초입니다 unsigned long fadeStartTime; // setup 루틴은 리셋을 누를 때 한 번 실행됩니다 void setup() { pinMode(LED_PIN, OUTPUT); // 9번 핀을 출력으로 선언합니다 fadeStartTime = millis(); } // loop에서 fade-in하고, 완료 후 다시 시작합니다 void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // 다시 페이드를 시작합니다 } }

지연(delay())을 사용하지 않고 일정 기간 동안 LED를 서서히 켜는 방법

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // Arduino PWM 핀이 연결된 LED #define FADE_PEDIOD 3000 // 페이드 시간은 3초입니다 unsigned long fadeStartTime; // setup 루틴은 리셋을 누를 때 한 번 실행됩니다 void setup() { pinMode(LED_PIN, OUTPUT); // 9번 핀을 출력으로 선언합니다 fadeStartTime = millis(); } // loop에서 fade-in하고, 완료 후 다시 시작합니다 void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // 다시 페이드를 시작합니다 } }

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

도전해보세요

포텐쇼미터를 사용하여 LED의 밝기를 조절하세요. 힌트: 아두이노 - 포텐쇼미터를 참조하세요.

추가 지식

아날로그 쓰기(analogWrite()) 함수에 의해 생성된 PWM 신호로 LED가 서서히 사라집니다. 그 이유는 고주파 PWM이기 때문입니다. 저주파 PWM 신호를 생성하는 사용자 정의 함수(고급 지식 필요)를 만들면 LED가 서서히 사라지는 대신 깜박이게 될 것입니다.

요약: PWM 신호는 아두이노에서 서보 모터 제어, DC 모터 제어, 피에조 부저를 사용하여 소리 내기, LED 서서히 사라지게 하기, LED 깜박이게 하기 등에 사용될 수 있습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!