import time import board import neopixel # LED 설정 LED_COUNT = 6 # LED 개수 LED_PIN = board.D18 # GPIO 18번 (PWM 지원 핀) ORDER = neopixel.GRB # WS2812B는 GRB 순서 # NeoPixel 객체 생성 pixels = neopixel.NeoPixel( LED_PIN, LED_COUNT, brightness=1.0, auto_write=False, pixel_order=ORDER ) # 색상 설정 함수 def color_wipe(color, wait=0.1): for i in range(LED_COUNT): pixels[i] = color pixels.show() time.sleep(wait) # 무지개 색상 함수 def wheel(pos): if pos < 85: return (pos * 3, 255 - pos * 3, 0) elif pos < 170: pos -= 85 return (255 - pos * 3, 0, pos * 3) else: pos -= 170 return (0, pos * 3, 255 - pos * 3) def rainbow_cycle(wait=0.01): for j in range(255): for i in range(LED_COUNT): pixel_index = (i * 256 // LED_COUNT) + j pixels[i] = wheel(pixel_index & 255) pixels.show() time.sleep(wait) # 메인 루프 try: while True: color_wipe((255, 0, 0)) # 빨강 time.sleep(1) color_wipe((0, 255, 0)) # 초록 time.sleep(1) color_wipe((0, 0, 255)) # 파랑 time.sleep(1) rainbow_cycle() except KeyboardInterrupt: pixels.fill((0, 0, 0)) pixels.show()