Montage et cablâge du NeoPixel Stick - 8 sur la platine. Composant, un condensateur électrolytique polarisé 1 000 µF - 6,3 volts et une résistance de 470Ω.
Les LED doivent afficher les différentes couleurs programmées.
Thursday, December 09, 2021
#
# http://nano-ordinateur-info.fr/
#
# Branchement du NeoPixel Stick sur une carte Raspberry Pico.
#
import array, time, rp2
from machine import Pin
# nombres de LED branchées en série.
nbLed = 8
# définit la sortie de la carte pour l'envoi des données
pin = 4
# définit la luminosité
lumin = 0.1
# définit des couleurs pour des boucles
COLORS = ((255,127,0),(255,0,0),(255,255,255),(0,0,255),(0,255,0),(220,100,255),(0,255,255),(255,0,255))
@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
def ws2812():
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(pin))
sm.active(1)
# Affichez un motif sur les LED via un tableau de valeurs LED RGB.
ar = array.array("I", [0 for _ in range(nbLed)])
def pixels_show():
dimmer_ar = array.array("I", [0 for _ in range(nbLed)])
for i,c in enumerate(ar):
r = int(((c >> 8) & 0xFF) * lumin)
g = int(((c >> 16) & 0xFF) * lumin)
b = int((c & 0xFF) * lumin)
dimmer_ar[i] = (g<<16) + (r<<8) + b
sm.put(dimmer_ar, 8)
time.sleep_ms(10)
# ---------------------- début code animation ----------------------------------------------------------------------
i = 0
for color in COLORS:
ar[i] = (color[1]<<16) + (color[0]<<8) + color[2]
pixels_show()
i += 1
time.sleep(0.5)
# ---------------------- fin code animation ------------------------------------------------------------------------