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

이 튜토리얼은 LED를 페이드시키는 방법에 대해 Arduino Nano를 프로그래밍하는 방법을 안내합니다. 우리는 세 가지 예제를 살펴보고 그들 사이의 차이점을 비교할 것입니다:

준비물

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

Overview of LED

LED 정보

LED 핀배열

LED는 두 개의 핀이 있습니다:

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

작동 원리

음극(-)이 GND에 연결되면:

  • GND가 양극(+)에 연결되면, LED는 꺼집니다.
  • VCC가 양극(+)에 연결되면, LED는 켜집니다.
  • 양극(+)에 PWM 신호가 적용되면, LED의 밝기가 0에서 255 범위의 PWM 값에 따라 조정됩니다. PWM 값이 크면 LED는 밝아지고, PWM 값이 작으면 LED는 어두워집니다.
    • PWM 값이 0이면, 이는 GND와 동일하므로 LED는 꺼집니다.
    • PWM 값이 255이면, 이는 VCC와 동일하므로 LED는 완전히 켜집니다.
    How LED Works

    ※ NOTE THAT:

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

    아두이노 나노 - LED 페이드

    Arduino Nano의 일부 핀은 PWM 신호를 생성하도록 프로그래밍될 수 있습니다. LED를 서서히 밝게 하려면, LED의 양극(+) 핀을 Arduino Nano 핀에 연결하고, 음극(-)을 GND에 연결한 다음, Arduino Nano 핀이 PWM을 생성하도록 프로그래밍하면 됩니다.

선연결

Arduino Nano LED wiring diagram

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

프로그래밍 방법

pinMode() 함수를 사용하여 아두이노의 핀에 디지털 출력을 설정하십시오.

예를 들어, 이것은 핀 5에 대해 수행될 수 있습니다:

pinMode(5, OUTPUT);

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

cpp analogWrite(5, brightness);

밝기는 0에서 255까지 설정할 수 있습니다.

아두이노 나노 코드 - LED 페이드

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // 아두이노 PWM 핀으로 연결된 LED int brightness = 0; // LED의 밝기 int fade_step = 5; // LED를 얼마나 페이드할지에 대한 점수 // setup 함수는 리셋이나 전원이 켜질 때 한 번 실행됩니다. void setup() { // 핀 9를 출력으로 선언합니다: pinMode(LED_PIN, OUTPUT); } // loop 함수는 무한히 반복됩니다. void loop() { // 핀 9의 밝기를 설정합니다: analogWrite(LED_PIN, brightness); // 다음 루프를 위해 밝기를 변경합니다: brightness = brightness + fade_step; // 페이드의 끝에서 페이딩의 방향을 반대로 합니다: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // 희미한 효과를 보기 위해 30 밀리초 동안 기다립니다 delay(30); }

사용 방법

  • USB 케이블을 사용하여 아두이노 나노를 컴퓨터에 연결하세요.
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요.
  • 위의 코드를 복사해서 아두이노 IDE에서 열어주세요.
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 아두이노 나노 보드에 업로드하세요.
Arduino IDE Upload Code

LED의 밝기를 확인하세요.

코드 설명

소스 코드의 주석에 포함된 줄별 설명을 확인하세요!

※ NOTE THAT:

위의 예시는 delay() 함수를 사용하여 페이드인 및 페이드아웃 효과를 생성합니다. 그러나 이 방법은 매우 부드럽지 않으며 다른 코드의 실행을 방해합니다. 다가오는 섹션에서는 millis() 함수를 사용하여 다른 코드를 방해하지 않고 부드러운 페이드인 및 페이드아웃을 달성하는 방법을 배울 것입니다.

지연(delay())을 사용하지 않고 일정 기간 동안 LED를 점점 밝게 하는 방법

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

지연(delay())을 사용하지 않고 일정 기간 동안 LED를 점차 어둡게 하는 방법

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

동영상

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

도전하세요

LED의 밝기를 가변저항기로 조절하세요. 힌트: 더 많은 정보를 원하신다면 아두이노 나노 - 가변저항기를 확인해보세요.

추가 지식

아두이노 나노에서의 analogWrite() 함수는 PWM 신호를 생성하여 LED가 서서히 밝아지게 합니다. 하지만, 저주파 PWM 신호를 생성하는 사용자 정의 함수를 만들 준비가 된 상태라면, LED가 서서히 밝아지는 대신 깜박이게 됩니다.

요약: 아두이노 나노에서 생성된 PWM 신호는 서보 모터, DC 모터 제어, 피에조 부저로 소리 생성, 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!