그래블로 도움말 그래블로 도움말
  • 학습하기
    • 빠른 시작 가이드
    • 사용자 메뉴얼
    • 예제
    • 유용한 정보
  • 새 소식
  • 그래블로 홈
  • 그래블로 앱
문의하기
그래블로 도움말 그래블로 도움말
문의하기
그래블로 도움말 그래블로 도움말
  • 학습하기
    • 빠른 시작 가이드
    • 사용자 메뉴얼
    • 예제
    • 유용한 정보
  • 새 소식
  • 그래블로 홈
  • 그래블로 앱
loading
  1. Home
  2. 학습하기
  3. I/O장치
  4. 네오픽셀 (WS281x) LED
Updated on 5월 6, 2025

학습하기

  • 빠른 시작 가이드
    • 그래블로
    • 기본 개념
    • 예제 프로젝트
  • 사용자 매뉴얼
    • 프로젝트
      • 일반
      • 공유
    • 로직
      • 로직
      • 제어그룹
      • 제어
      • 조건그룹
      • 동작그룹
      • 조건
        • 일반
        • 타입
          • 항상 만족
          • 한번만 만족
          • 변수값 비교
          • 스케쥴
          • 시간 구간
          • 시간 주기
          • 조건 참조
          • 동작 참조
          • 변경 감지
          • 사용자 조건
      • 동작
        • 일반
        • 타입
          • 변수 쓰기
          • I/O장치 제어
          • 시간 지연
          • 타이머
          • 미디어 재생
          • 이미지 보기
          • 전자 악기 연주
          • SHELL 명령 실행
          • 오디오 녹음
          • 오디오 변조
          • 음성 텍스트 변환
          • 텍스트 음성 변환
          • 파일 시스템
          • 파일 읽기/쓰기
          • 데이터베이스
          • HTTP 통신
          • MQTT 통신
          • OPC UA 통신
          • 모드버스 통신
          • 이메일 보내기
          • 텔레그램 메시지
          • 사용자 정의 통신
          • PID 제어
          • 통계 계산
          • 컬렉션
          • 사용자 동작
    • 대시보드
      • 일반
      • 위젯
    • 설정
      • GPIO
      • 변수
      • I/O장치
      • 파일 편집기
      • 컬렉션
      • 타이머
      • 이미지 뷰어
      • 오디오 변조
      • 미디어 플레이어
      • 전자 악기
      • 텍스트 음성 변환
      • 음성 텍스트 변환
      • 오디오 녹음기
      • MQTT 클라이언트
      • OPC UA 클라이언트
      • 모드버스
      • 이메일 클라이언트
      • 텔레그램 봇
      • 데이터베이스
      • 사용자 정의 통신
      • PID 제어
      • 통계
    • 연결 및 실행
      • 하드웨어 및 운영체제
      • 그래블로 패키지 설치
      • 연결 및 실행
  • 예제
    • 초급
      • LED 깜박이기
      • LED 3개를 다른 간격으로 깜빡이기
      • 조건 옵션 활용하기
      • 대시보드 위젯 사용하기
    • 중급
      • 다양한 조건을 조합하기
      • 복잡한 동작을 실행하기
  • I/O장치
    • DS18B20 디지털 온도 센서
    • MAX31865 RTD 온도 센서
    • TinyGPS ++ GPS 라이브러리
    • BMP180 디지털 대기압, 온도 센서
    • AHTx0 온도, 습도 센서
    • SHT2x 온도, 습도 센서
    • 서보 모터 제어
    • PWM 신호 출력
    • PWM 신호 모니터링
    • 하드웨어 PWM 신호출력
    • LED 켜기/끄기
    • 푸시버튼 읽기
    • 디지털 읽기/쓰기
    • 스텝 모터 제어
    • 고속 카운터
    • ADS1x15 ADC 변환 모듈
    • ADXL345 3축 가속도 센서
    • BME280 온도, 습도, 대기압센서
    • BMP280 온도, 대기압 센서
    • MLX90614 비접촉식 적외선 온도 센서
    • MCP4725 DAC 모듈
    • HMC5883 3축 지자기 센서
    • SHT31 디지털 온습도 센서
    • TCS34725 RGB 컬러 센서
    • VEML6070 자외선 센서
    • BH1750 디지털 조도센서
    • DS3231 RTC 고정밀 리얼타임 클럭
    • MPU-9250 9축 IMU 센서
    • CCS811 이산화탄소 및 TVOC 공기품질 센서
    • VL53L0X ToF 레이저 거리 센서
    • TFmini Plus(S) LiDAR 거리 센서
    • MAX7219 8자리 7세그먼트 디스플레이
    • PCF8574 LCD 디스플레이 드라이버
    • HC-SR04 초음파 거리센서
    • LED 밝기 제어
    • RGB LED 색상 제어
    • DC 모터 제어
    • AT24C256 EEPROM 메모리 모듈
    • DHTxx 온습도 센서
    • MCP3xxx ADC 모듈
    • LCD 디스플레이 드라이버(MCP23008, MCP23017)
    • MFRC522 RFID 리더
    • 수동 부저
    • 네오픽셀 (WS281x) LED
    • 적외선(IR) 리시버
    • 네오픽셀 매트릭스
    • ST77xx TFT 컬러 LCD 모듈
    • ILI9341 TFT 컬러 LCD 모듈
    • SSD1306 0.96인치 단색 OLED 디스플레이
    • SH1106 1.3인치 단색 OLED 디스플레이
    • MAX7219 8×8 LED 도트 매트릭스
    • HT16K33 4자리 7세그먼트 디스플레이
    • HX711 로드셀 측정 24비트 AD컨버터
    • TCS3200 RGB 컬러센서
    • MPU6050 6축 자이로 가속도 센서
    • TM1637 4자리 7세그먼트 디스플레이
    • PM2008(M) 미세먼지 측정 센서
    • PMS x003 미세먼지 측정 센서
    • MAX30102 산소 포화도, 심박수 측정 센서
    • AS608, FPM10A 지문 인식 센서
    • TTP229 정전식 16키 터치 키패드
    • 4×4 키패드 매트릭스
    • 아날로그 입력
    • 아날로그 출력
    • RPM 모니터
    • PCA9685 16채널 12비트 PWM 서보 드라이버
    • INA219 DC 전류 센서 모듈
    • VL6180X ToF 거리 센서
    • 사용자 정의 디지털 파형 출력
    • NRF24L01 2.4GHz RF통신모듈
  • 블록 코딩
    • 일반
    • 블록
      • 일반
      • 논리
      • 반복
      • 수학
      • 날짜/시간
      • 텍스트
      • 바이트 배열
      • 리스트
      • 타입 변환
      • 단위 변환
      • 자연/과학
      • 비트/바이트
      • 복소수/벡터
      • JSON
      • XML
      • 지역 변수
      • 지역 함수
  • 유용한 정보
    • 기초지식
      • 비트와 바이트
      • 디지털 입력/출력
      • 디지털/아날로그 신호
      • LED 저항 용량 계산하기
      • 풀업/풀다운 저항
      • 3.3V <-> 5V 변환
      • 시리얼 통신 (UART)
      • DC모터, 서보모터, 스텝모터
      • 멀티 쓰레드 (Multi Thread)
      • 릴레이 (Relay)
    • 하드웨어
      • 라즈베리파이
        • GPIO
        • 운영체제 설치하기
        • 1-Wire핀을 변경하는 방법
        • I2C 장치의 주소를 찾는 방법
        • 라즈베리파이 vs 아두이노
        • VNC로 데스크탑 환경 사용하기
        • 시리얼 (UART) 포트
      • 비글본
        • GPIO
        • 운영체제 설치하기
      • 확장 GPIO
        • FT232H/FT2232H/FT4232H
        • MCP2221A
        • NUMATO USB-GPIO
    • 리눅스
      • 리눅스 디렉토리 구조
      • 리눅스 자동 로그인 설정하기
      • 윈도우에 리눅스 설치하기 (가상 머신)
      • 맥OS에 리눅스 설치하기 (가상머신)
      • SSH 서버 설치하기
      • 컨트롤러의 IP 주소를 모를 때
      • SSH 접속하기
      • PC, 컨트롤러 사이 파일 전송하기
      • “sudoer 설정 파일에 없습니다.” 오류 발생시
    • 오디오/비디오
      • 가상머신에서 USB 사운드 카드의 사운드가 끊기는 문제
      • 블루투스 스피커로 사운드 출력하기
      • 음원 파일에서 악기 선택하기
      • “Failed to create new vlc instance.” 에러가 발생하는 경우
    • 데이터베이스
      • Firebase DB 사용하기
    • IOT
      • OpenAI TTS 사용하기
      • ElevenLabs TTS 사용하기
      • 텔레그램 봇 사용하기

네오픽셀 (WS281x) LED

Estimated reading: 2 minutes 218 views

일반

네오픽셀 (WS281x) RGB LED 입니다. 네오픽셀(Neo Pixel)은 Adafruit 사의 모델명으로 WS2811/2812와 같은 제어칩과 LED가 일체형으로 된 제품을 의미합니다. 하나의 핀으로 많은 갯수의 LED의 색상을 빠른 속도로 제어 가능한 장점이 있습니다. 스트립, 원형, 매트릭스 등 다양한 모양으로 구성할 수 있습니다.


호환 모듈
  • WS281x (WS2811, WS2812…)
  • SK6812


사용 가능한 GPIO
  • 라즈베리파이 0~4



명령

[INIT]

초기 설정을 입력합니다.

항목 타입 설명
GPIO 핀 * WRITE LED를 연결한 GPIO핀 번호를 입력합니다.
LED갯수 ** WRITE 핀에 연결된 LED의 갯수를 입력합니다.
모듈타입 WRITE 모듈의 타입을 선택합니다. (WS281x,SK6812)
작동주파수 WRITE 모듈의 작동 주파수를 선택합니다. (400kHz, 800kHz)
RGB순서 WRITE 모듈의 RGB순서를 선택합니다. (RGB,RBG,GRB,GBR,BRG,BGR,RGBW,RBGW,GRBW,GBRW,BRGW,BGRW)
* 라즈베리파이 모델에 따라 아래의 GPIO핀에서만 사용 가능합니다.
** 이론상 하나의 핀에 최대 2700 개의 LED를 연결할 수 있습니다. 다만 전원 공급 및 신호 품질 문제등의 이유로 실제 연결 가능한 갯수는 더 작을 수 있습니다.
** SPI0 MOSI핀 (GPIO 10 또는 38)을 사용할 경우 LED 갯수를 8개 이상으로 설정해야 합니다. 그렇지 않으면 LED 색상, 위치가 설정과 다르게 표시될 수 있습니다.

GPIO 번호 명칭 라즈베리파이 모델
10 SPI0 MOSI 전 모델 (5 제외)
12 PWM0 전 모델 (A, B, 5 제외)
13 PWM1 전 모델 (A, B, 5제외)
18 PWM0 전 모델 (5 제외)
19 PWM1 전 모델 (A, B, 5, 제외)
38 SPI0 MOSI Compute module
40 PWM0 Compute module
41 PWM1 Compute module
45 PWM1 Compute module
52 PWM0 Compute module
53 PWM1 Compute module

​

[SET_BRIGHTNESS]

LED의 밝기를 설정합니다.

항목 타입 설명
밝기 WRITE 연결된 모든 LED의 밝기를 제어합니다. (0~255)

​

[SET_PIXEL_COLOR]

특정 위치의 LED의 색상을 설정합니다. SHOW 명령을 실행해야 색상이 표시됩니다.

항목 타입 설명
위치 WRITE 색상을 설정할 LED의 위치입니다. 0부터 시작합니다.
색상 타입 WRITE 설정할 색상의 타입을 선택합니다. (RGB 또는 HSV)


색상 타입 : RGB

항목 타입 설명
R WRITE 색상의 R성분을 입력합니다. (0~255)
G WRITE 색상의 G성분을 입력합니다. (0~255)
B WRITE 색상의 B성분을 입력합니다. (0~255)
W WRITE 색상의 W성분을 입력합니다. (0~255, RGBW 타입의 LED만 해당)

색상 타입 : HSV

항목 타입 설명
H WRITE 색상의 H (Hue)성분을 입력합니다. (0~360)
S WRITE 색상의 S (Saturation, 채도)성분을 입력합니다. (0~100)
V WRITE 색상의 V (Value, 명도)성분을 입력합니다. (0~100)

​

[SET_PIXELS_COLOR]

여러개의 LED의 색상을 설정합니다. SHOW 명령을 실행해야 색상이 표시됩니다.

항목 타입 설명
시작위치 WRITE 색상을 설정할 LED의 시작위치입니다. 첫번째 LED의 위치는 0 입니다.
개수 WRITE 색상을 설정할 LED의 갯수를 입력합니다.
색상 타입 WRITE 설정할 색상의 타입을 선택합니다.


색상 타입 : RGB

항목 타입 설명
R WRITE 색상의 R성분을 입력합니다. (0~255)
G WRITE 색상의 G성분을 입력합니다. (0~255)
B WRITE 색상의 B성분을 입력합니다. (0~255)
W WRITE 색상의 W성분을 입력합니다. (0~255, RGBW 타입의 LED만 해당)

색상 타입 : HSV

항목 타입 설명
H WRITE 색상의 H (Hue)성분을 입력합니다. (0~360)
S WRITE 색상의 S (Saturation, 채도)성분을 입력합니다. (0~100)
V WRITE 색상의 V (Value, 명도)성분을 입력합니다. (0~100)


[SHOW]

설정된 색상을 LED에 표시합니다.

​

[CLEAR]

모든 LED를 끕니다.

​

예제

목표

대시보드의 버튼을 누르면 rainbow theater marquee style의 효과를 실행합니다.


부품
부품 갯수
라즈베리파이 4 * 1
WS2812 1
5V DC Power Supply 1
* 다른 하드웨어를 사용할 수도 있습니다. 사용 가능한 GPIO를 참고하세요.


연결

아래의 핀들을 가로 방향으로 서로 연결합니다.

5V DC Power ** WS2812 LED GPIO
+ +5V ​
​ Din 12 *
– GND GND
* 사용가능한 GPIO 핀 테이블을 참고합니다.
** LED의 전압과 소모 전류를 고려하여 적절한 외부 DC Power Supply를 사용합니다.


프로젝트

제한사항

PWM

PWM0, PWM1 핀을 사용하여 네오픽셀을 사용할 경우 라즈베리파이 오디오와 충돌이 발생하여 제대로 동작하지 않을 수 있습니다. 이는 오디오 또한 라즈베리파이의 하드웨어 PWM을 사용하기 때문입니다. 그러므로 이 경우 아래와 같이 라즈베리파이 오디오를 비활성화하면 PWM핀을 통해 정상적으로 네오픽셀을 사용할 수 있습니다. 다만, 이 경우 온보드 오디오 (측면의 3.5mm 오디오 잭)은 사용할 수 없으며 HDMI나 USB 사운드 카드를 통한 오디오 출력을 사용해야 합니다.

라즈베리파이 터미널에 아래의 명령을 입력하여 파일을 생성합니다.

sudo nano /etc/modprobe.d/snd-blacklist.conf


아래의 내용을 파일의 마지막에 추가합니다.

blacklist snd_bcm2835


Ctrl + O -> 엔터 -> Ctrl + X 를 눌러서 파일을 저장하고 종료합니다.


다음 명령을 입력하여 라즈베리파이를 재부팅합니다.

sudo reboot


SPI

SPI-MOSI 핀 사용시 많은 갯수 (약 340개 이상) 의 네오픽셀을 사용하려면 SPI 전송버퍼의 크기를 늘려주어야 합니다.

라즈베리파이 터미널에 아래의 명령을 입력하여 파일을 편집합니다.

sudo nano /boot/cmdline.txt


아래 내용을 파일의 마지막에 추가합니다.

spidev.bufsiz=32768


Ctrl + O -> 엔터 -> Ctrl + X 를 눌러서 파일을 저장하고 종료합니다.


다음 명령을 입력하여 라즈베리파이를 재부팅합니다.

sudo reboot


라즈베리파이 3,4의 경우 아래와 같이 추가 수정이 필요합니다.

터미널에 아래의 명령을 입력하여 파일을 편집합니다.

sudo nano /boot/config.txt


마지막에 다음을 추가합니다.

  • 라즈베리파이 3
core_freq=250

  • 라즈베리파이 4
core_freq=500

core_freq_min=500


Ctrl + O -> 엔터 -> Ctrl + X 를 눌러서 파일을 저장하고 종료합니다.


다음 명령을 입력하여 라즈베리파이를 재부팅합니다.

sudo reboot

​

위와 같이 SPI 설정을 변경하면 SPI 통신을 사용하는 다른 장치는 작동하지 않을 가능성이 있습니다. 그러므로 다른 SPI 장치를 사용하기 위해서는 설정을 원래대로 변경해야 합니다.


참고자료

데이터시트 (WS2811)

데이터시트 (WS2812)

데이터시트 (SK6812)

라이브러리

찾으시는 내용이 없나요? 문의하기

문의하기

공유하기

네오픽셀 (WS281x) LED

Or copy link

Clipboard Icon
콘탠츠

ㅤ

대전광역시 서구 둔산로 8
(주)그래블로
support@grablo.co

바로가기

  • 빠른 시작 가이드
  • 메뉴얼
  • 예제
  • 유용한 정보
  • 새 소식
  • 그래블로 홈
  • 그래블로 앱
  • 문의하기

관련 사이트

  • 유튜브
  • 인스타그램
  • 페이스북

약관 및 라이센스

  • 서비스 이용약관
  • 개인정보 처리방침
  • 오픈소스 라이센스

이 사이트의 모든 컨텐츠는 저작권법에 보호받는 저작물로서, 무단으로 복제, 배포하는 경우에는 저작권법에 의하여 처벌을 받을 수 있습니다. Copyright 2024 grablo.co. All Rights Reserved.