micropythonで WS2812B
timing というパラメータが存在してこれが1のときには 800Hz それ以外だと400Hzで駆動しようとする
が,800Hzでないと動かないぽいのでいつも timing=1 として初期化する必要がある. ESP32 のとき これだけやればちゃんと動くはず(2017/11/21現在)
サンプルは以下のとおり
code:neopixe.py
from time import sleep_ms
from machine import Pin
import neopixel
def demo(np, r, b, g):
n = np.n
np.fill((0,0,0))
np.write()
sleep_ms(1000)
for i in range(n):
np.write()
sleep_ms(100)
def run():
np = neopixel.NeoPixel(Pin(13), 8, timing = 1 )
demo(np, 255, 0, 0)
demo(np, 0, 255, 0)
demo(np, 0, 0, 255)
demo(np, 255, 255, 255)
np.fill((0, 0, 0))
np.write()
run()