아두이노 - 여러 LED 깜박임 | Arduino - Blink multiple LED

이 튜토리얼은 여러 개의 LED를 동시에 깜박이게 하기 위해 delay 함수를 사용하지 않고 아두이노를 프로그래밍하는 방법을 가르쳐 줍니다. 이 튜토리얼은 두 가지 방법으로 코드를 제공합니다:

우리는 예시로 세 개의 LED를 사용할 것입니다. 쉽게 수정하여 두 개, 네 개 또는 그 이상의 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 튜토리얼을 제공합니다. 여기서 더 알아보세요:

아두이노 - LED 튜토리얼

선연결

Arduino multiple LED Wiring Diagram

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

아두이노 코드 - 여러 LED 깜박임

여러 LED를 동시에 깜빡이려면 delay() 함수에 의존할 수 없습니다. delay()를 사용하면 다른 코드 실행이 차단되어 여러 LED를 동시에 깜빡이는 것을 방지하기 때문입니다. 대신, millis() 함수를 사용하여 타임스탬프를 효과적으로 관리합니다.

초보자의 경우, 여러 LED를 깜박이면서 타임스탬프를 관리하는 것이 어려울 수 있습니다. 다행히 ezLED 라이브러리는 타임스탬프 관리를 내부적으로 처리하여 이 과정을 간소화합니다. 이로 인해 라이브러리를 사용할 때 사용자가 타임스탬프 관리 부담을 덜게 됩니다. 또한, LED 배열을 사용하면 코드의 명확성과 간결성을 개선할 수 있습니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-blink-multiple-led */ #include <ezLED.h> // ArduinoGetStarted.com의 ezLED 라이브러리 #define PIN_LED_1 7 // LED 1에 연결된 아두이노 핀 #define PIN_LED_2 8 // LED 2에 연결된 아두이노 핀 #define PIN_LED_3 9 // LED 3에 연결된 아두이노 핀 ezLED led1(PIN_LED_1); // PIN_LED_1에 연결된 ezLED 객체 생성 ezLED led2(PIN_LED_2); // PIN_LED_2에 연결된 ezLED 객체 생성 ezLED led3(PIN_LED_3); // PIN_LED_3에 연결된 ezLED 객체 생성 void setup() { Serial.begin(9600); led1.blink(500, 500); // 500ms 켜짐, 500ms 꺼짐, 즉시 깜박임 led2.blink(200, 800); // 200ms 켜짐, 800ms 꺼짐, 즉시 깜박임 led3.blink(800, 200); // 800ms 켜짐, 200ms 꺼짐, 즉시 깜박임 } void loop() { led1.loop(); // loop() 내에서 반드시 led1.loop() 함수를 호출해야 함 led2.loop(); // loop() 내에서 반드시 led2.loop() 함수를 호출해야 함 led3.loop(); // loop() 내에서 반드시 led3.loop() 함수를 호출해야 함 // 여기에 무언가를 실행 }

사용 방법

위 이미지대로 배선하세요.

아두이노 보드를 USB 케이블을 통해 PC에 연결하세요.

PC에서 Arduino IDE를 엽니다.

올바른 아두이노 보드(예: Arduino Uno)와 COM 포트를 선택하세요.

Arduino IDE의 왼쪽 바에서 Libraries 아이콘을 클릭하세요.

“ezLED”를 검색한 다음, ArduinoGetStarted에 의한 led 라이브러리를 찾으세요.

ezLED 라이브러리를 설치하려면 Install 버튼을 클릭하세요.

Arduino led library
  • 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 Arduino 보드에 업로드하세요.
How to upload Arduino code on Arduino IDE

LED 상태를 확인하세요.

아두이노 코드 - 배열을 이용하여 여러 LED 깜박이기

위의 코드를 LED 배열을 사용하여 개선할 수 있습니다. 다음 코드는 이 배열을 사용하여 LED 객체를 처리합니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-blink-multiple-led */ #include <ezLED.h> // ezLED 라이브러리 by ArduinoGetStarted.com #define NUM_LED 3 // LED 세 개 #define PIN_LED_1 7 // LED 1에 연결된 아두이노 핀 #define PIN_LED_2 8 // LED 2에 연결된 아두이노 핀 #define PIN_LED_3 9 // LED 3에 연결된 아두이노 핀 ezLED ledArray[NUM_LED] = { ezLED(PIN_LED_1), // PIN_LED_1 핀에 연결된 ezLED 객체 생성 ezLED(PIN_LED_2), // PIN_LED_2 핀에 연결된 ezLED 객체 생성 ezLED(PIN_LED_3) // PIN_LED_3 핀에 연결된 ezLED 객체 생성 }; void setup() { Serial.begin(9600); ledArray[0].blink(500, 500); // 500ms 켜고, 500ms 꺼짐, 즉시 깜박임 ledArray[1].blink(200, 800); // 200ms 켜고, 800ms 꺼짐, 즉시 깜박임 ledArray[2].blink(800, 200); // 800ms 켜고, 200ms 꺼짐, 즉시 깜박임 } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // 반복문에서 led.loop() 함수를 반드시 호출해야 함 // 여기서 무언가를 하세요 }

ezLED library를 사용하면 다음과 같이 여러 LED를 유연하게 깜박일 수 있습니다:

  • 다른 주파수로 여러 LED를 깜박입니다
  • 다른 시작 시간에 여러 LED를 깜박입니다
  • 일정 기간 동안 각 LED를 깜박입니다
  • 일정 횟수(사이클) 동안 각 LED를 깜박입니다

도서관에서 예제 코드를 확인하세요.

동영상

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

※ 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!