라즈베리 파이 피코 여러 LED 깜빡이기

이 가이드는 time.sleep() 함수를 사용하지 않고 다양한 속도로 여러 LED를 깜박이도록 Raspberry Pi Pico를 프로그래밍하는 방법을 알려줍니다. 두 가지 다른 방법으로 코드를 제공합니다:

라즈베리 파이 피코는 여러 개의 LED를 깜빡입니다.

우리는 세 개의 LED로 이것을 수행하는 방법을 보여줄 것입니다. 두 개, 네 개 또는 그 이상의 LED로 간단히 변경할 수 있습니다.

준비물

1×라즈베리 파이 피코 W 아마존
1×라즈베리 파이 피코 (또는) 아마존
1×마이크로 USB 케이블 아마존
1×LED 쿠팡 | 아마존
1×220Ω 저항기 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 라즈베리 파이 피코용 스크루 터미널 확장 보드 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

LED에 대하여

LED에 관한 자세한 가이드를 확인해 보세요. 하드웨어 연결 방법, 작동 원리, Raspberry Iron Pico를 이용한 설정 방법 및 프로그래밍 방법에 대해 배울 수 있습니다. 자세한 내용을 확인하세요:

선연결

라즈베리 파이 피코 다중 LED 배선 다이어그램

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

라즈베리 파이 피코 코드 - 여러 LED 깜박이기

여러 LED가 동시에 깜빡이도록 하려면 time.sleep() 함수를 사용하지 마세요. 이 함수는 다른 코드의 실행을 중단시켜 LED가 동시에 깜빡이지 않게 만듭니다. 대신 타임스탬프를 사용하여 타이밍을 관리하세요.

프로그래밍을 처음 접하여 여러 LED의 점멸 타이밍을 맞추기 어렵다면, DIYables_MicroPython_LED 라이브러리가 타이밍 관리를 대신해 이를 간소화합니다. 즉, 이 라이브러리를 사용할 때 타이밍 문제를 직접 처리할 필요가 없습니다.

/* * 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-blink-multiple-led */ from DIYables_MicroPython_LED import LED, LED_DELAY, LED_BLINKING, LED_IDLE, CTRL_ANODE # Define LED pins PIN_LED_1 = 22 # The Raspberry Pi Pico pin connected to the LED 1 (GP22) PIN_LED_2 = 26 # The Raspberry Pi Pico pin connected to the LED 2 (GP26) PIN_LED_3 = 27 # The Raspberry Pi Pico pin connected to the LED 3 (GP27) # Create LED objects that attach to the specified pins led1 = LED(PIN_LED_1, CTRL_ANODE) led2 = LED(PIN_LED_2, CTRL_ANODE) led3 = LED(PIN_LED_3, CTRL_ANODE) led1.blink(500, 500) # 500ms ON, 500ms OFF, blink immediately led2.blink_with_duration(100, 100, 5000) # 100ms ON, 100ms OFF, blink for 5 seconds, blink immediately led3.blink_n_times(250, 750, 10) # 250ms ON, 750ms OFF, repeat 10 times, blink immediately # Main loop while True: led1.loop() # MUST call the led1.loop() function led2.loop() # MUST call the led2.loop() function led3.loop() # MUST call the led3.loop() function # DO OTHER TASKS HERE # DO SOMETHING HERE

자세한 사용 방법

다음의 지시사항을 단계별로 따라주세요:

  • 귀하의 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하십시오.
  • 귀하의 Raspberry Pi Pico에 MicroPython 펌웨어가 설치되어 있는지 확인하십시오.
  • Raspberry Pico를 처음 사용한다면, 자세한 설명은 라즈베리 파이 피코 - 시작하기 튜토리얼을 참고하십시오.
  • 제공된 다이어그램에 따라 Raspberry Pi Pico를 LED에 연결하십시오.
  • USB 케이블을 사용하여 Raspberry Pi Pico를 컴퓨터에 연결하십시오.
  • 컴퓨터에서 Thonny IDE를 실행하십시오.
  • Thonny IDE에서, 도구 옵션으로 이동하여 MicroPython (Raspberry Pi Pico) 인터프리터를 선택하십시오.
  • 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (Raspberry Pi Pico)를 선택하십시오.
  • 올바른 포트가 선택되어 있는지 확인하십시오. Thonny IDE는 자동으로 포트를 감지하지만, 경우에 따라 직접 선택해야 할 수 있습니다 (예: Windows의 COM3 또는 Linux의 /dev/ttyACM0).
  • Thonny IDE에서, 도구 패키지 관리로 이동하십시오.
  • “DIYables-MicroPython-LED”를 검색한 후, DIYables에서 만든 LED 라이브러리를 찾으십시오.
  • DIYables-MicroPython-LED를 클릭한 후, LED 라이브러리를 설치하기 위해 Install 버튼을 클릭하십시오.
라즈베리 파이 피코 LED 라이브러리
  • 위의 코드를 복사하여 Thonny IDE 에디터에 붙여넣습니다.
  • Raspberry Pi Pico에 스크립트를 저장하려면:

• Save 버튼을 클릭하거나 Ctrl+S 키를 사용합니다.

• 저장 대화 상자에 '이 컴퓨터'와 'Raspberry Pi Pico' 두 항목이 표시됩니다. 'Raspberry Pi Pico'를 선택합니다.

• 파일 이름을 main.py로 저장합니다.

  • 녹색 실행(Run) 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행합니다.
  • Thonny 하단의 셸에서 메시지를 확인합니다.
  • LED가 켜졌는지 꺼졌는지 확인합니다.

라즈베리 파이 피코 코드 - 배열을 사용하여 여러 LED 깜빡이기

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

/* * 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-blink-multiple-led */ from DIYables_MicroPython_LED import LED, LED_DELAY, LED_BLINKING, LED_IDLE, CTRL_ANODE # Define LED pins PIN_LED_1 = 22 # The Raspberry Pi Pico pin connected to the LED 1 (GP22) PIN_LED_2 = 26 # The Raspberry Pi Pico pin connected to the LED 2 (GP26) PIN_LED_3 = 27 # The Raspberry Pi Pico pin connected to the LED 3 (GP27) # Create an array of LED objects led_array = [ LED(PIN_LED_1, CTRL_ANODE), # create ezLED object that attach to pin PIN_LED_1 LED(PIN_LED_2, CTRL_ANODE), # create ezLED object that attach to pin PIN_LED_2 LED(PIN_LED_3, CTRL_ANODE) # create ezLED object that attach to pin PIN_LED_3 ] led_array[0].blink(500, 500) # 500ms ON, 500ms OFF, blink immediately led_array[1].blink_with_duration(100, 100, 5000) # 100ms ON, 100ms OFF, blink for 5 seconds, blink immediately led_array[2].blink_n_times(250, 750, 10) # 250ms ON, 750ms OFF, repeat 10 times, blink immediately # Function to print the state of an LED def print_state(state, led_index): if state == LED_DELAY: print(f"LED {led_index + 1} DELAYING") elif state == LED_BLINKING: print(f"LED {led_index + 1} BLINKING") elif state == LED_IDLE: print(f"LED {led_index + 1} BLINK ENDED") # Track the previous states of the LEDs previous_states = [None] * len(led_array) # Main loop while True: # Update each LED state for i, led in enumerate(led_array): led.loop() # MUST call the led.loop() function in loop() # Get the current state of the LED current_state = led.get_state() # Print the state only if it has changed if current_state != previous_states[i]: print_state(current_state, i) previous_states[i] = current_state # Update the previous state # DO SOMETHING HERE

DIYables_MicroPython_LED 라이브러리를 사용하면, 다음과 같이 여러 개의 LED를 쉽게 깜빡이게 할 수 있습니다:

  • 여러 LED를 서로 다른 주파수로 깜빡이게 합니다.
  • 여러 LED가 서로 다른 시점에 깜빡이기 시작하도록 합니다.
  • 각 LED가 깜빡이는 시간을 특정 길이로 설정합니다.
  • 각 LED가 특정 횟수만큼 깜빡이도록 설정합니다.

동영상

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