---
title: "Raspberry Pi Pico에서 neopixel 사용하기"
url: "https://maker.wiznet.io/teddy/projects/raspberry-pi-pico%EC%97%90%EC%84%9C-neopixel-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/"
markdown_url: "https://maker.wiznet.io/teddy/projects/raspberry-pi-pico%EC%97%90%EC%84%9C-neopixel-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/md"
type: "UCC: User Created Content"
author: "rudalskim"
author_url: "https://rudalskim.tistory.com/425"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "rudalskim"
original_url: "https://rudalskim.tistory.com/425"
published: "2022-11-28"
language: "ko"
likes: 2
views: 833
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Raspberry Pi Pico에서 neopixel 사용하기

> Raspberry Pi Pico에서 neopixel 사용하기

Original author: rudalskim (source: https://rudalskim.tistory.com/425)

## Article

Adafruit CircuitPython 7.2.0 / Raspberry Pi Pico with rp2040 에서 테스트 되었습니다.

CirucuitPython에서 neopixel 라이브러리를 제공해 주고 있어서 쉽게 Raspberry Pi Pico를 사용하여 neopixel을 사용할 수 있습니다. 먼저 아래 CircuitPython 홈페이지에 접속하여 번들 라이브러리를 다운로드 받습니다.

현재 adafruit-circuitpython-bundle-7.x-mpy-20220326 버전이 최신 버전입니다.

압축을 풀면 파일 내에 lib폴더 밑에 neopixel.mpy 파일이 있는데 이 파일을 Raspberry Pi Pico의 lib 폴더에 복사해 넣습니다.

![](https://blog.kakaocdn.net/dn/kHM7C/btrxj7f16zy/1E1Ay5KulkHv1W20SWU1uk/img.png)

회로는 아래 그림과 같이 VBUS, GND, GP0 핀을 네오픽셀과 연결하였습니다.

![](https://blog.kakaocdn.net/dn/92njN/btrxieNIOY1/PMqWAKgC7vVnal92wk5rh0/img.png)

제가 가지고 있는 네오픽셀이 8개의 LED를 가지고 있어서 num_pixels=8로, LED 출력 핀으로 GP0를 설정하였습니다.

간단히 모든 LED를 붉은색으로 보여주는 간단한 코드입니다.

```plaintext
import board
import neopixel

num_pixels = 8
pixels = neopixel.NeoPixel(board.GP0, num_pixels)
pixels.brightness = 0.5

while True:
	pixels.fill((255, 0, 0))
```

아래는 위 소스를 code.py로 저장 후 실행된 결과입니다. 모든 LED가 적색으로 켜집니다.

![](https://blog.kakaocdn.net/dn/bxSsmk/btrxiemDN8n/IOCqLzAkL1kw25sLkdHVS1/img.png)

이번에는 소스코드를 조금 수정하여 R->G->B 컬러로 번갈아 보여지도록 소스를 수정해 보았습니다.

```plaintext
import time
import board
import neopixel

num_pixels = 8
pixels = neopixel.NeoPixel(board.GP0, num_pixels)
pixels.brightness = 0.5

while True:
    pixels.fill((255, 0, 0))
    time.sleep(0.5)
    pixels.fill((0, 255, 0))
    time.sleep(0.5)
    pixels.fill((0, 0, 255))
    time.sleep(0.5)
```

반복적으로 R->G->B 컬러로 번갈아가면서 켜집니다.

![](https://blog.kakaocdn.net/dn/z96e6/btrxoXLzwnd/48ZEhnkKW75ZvaZMf5xVIk/img.png)

아래 코드는 아두이노 등과 같은 네오픽셀 관련 소스를 보다 보면 예제로 많이 제공되는 rainbow라는 함수인데 이 함수를 적용하여 테스트해 보았습니다.

```plaintext
import time
import board
from rainbowio import colorwheel
import neopixel

num_pixels = 8
pixels = neopixel.NeoPixel(board.GP0, num_pixels, auto_write=False)
pixels.brightness = 0.5
def rainbow(speed):
    for j in range(255):
        for i in range(num_pixels):
            pixel_index = (i * 256 // num_pixels) + j
            pixels[i] = colorwheel(pixel_index & 255)
            pixels.show()
            time.sleep(speed)
while True:
	rainbow(0)
```

8개의 LED가 RGB 색상이 점진적으로 변경되면서 보여집니다.

![](https://blog.kakaocdn.net/dn/NLuLF/btrxr4vLIMf/YlgPyWNkwri0Si3eUkukjK/img.png)

CircuitPython에서 제공되는 neopixel 라이브러리를 사용하여 테스트해 보았습니다.

---

Source: https://maker.wiznet.io/teddy/projects/raspberry-pi-pico%EC%97%90%EC%84%9C-neopixel-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
