Les NeoPixels sont des LEDS RVB intelligentes ultra lumineuses. On peut les associer pour former des bandeaux, des rectangles etc....

     


Exemple : ce petit module sous la forme d'un stick, est équipé de 8 NeoPixels WS2812


Chaque NeoPixel possède à l’intérieur : 

    • une LED  RVB,
    • un  circuit électronique intégré,
    • une patte Data IN (données entrantes) et une patte Data OUT (données sortantes).


Les NeoPixel sont chainable entre eux, c’est à dire que les données entrantes de l’un vont être les données sortantes du suivant et ainsi de suite. 

Cette information est transmise très rapidement d’un NeoPixel à l’autre et chaque NeoPixel prend l’information qui le concerne.

Le 1er NeoPixel aura l'adresse 0, le suivant l'adresse 1 etc.....

Les données viennent d'une seule broche d’un microcontrôleur comme Microbit, ESP, Raspberry Pi Pico ou Arduino.


Le microcontrôleur doit envoyer une information  concernant :

    • la luminosité de 0 à 255 pour chaque canal en Rouge Vert Bleu, ex : (255, 0, 0)
    • l'adresse du NeoPixel concerné.


Raspberry Pi Pico MicroPython Neopixel WS2812 

Programme pour allumer les 3 premiers NeoPixels du stick connecté à la broche GP16 (repère D16 shield Grove)


from machine import Pin
from neopixel import NeoPixel    # import de la bibliothèque NeoPixel

np = NeoPixel(Pin(16), 8)        # crée un objet np de 8 Néopixels connectés broche GP16 (repère D16 shield Grove)

np[0] = (255, 0, 0)              # affecte du rouge au 1er NeoPixel (adresse = 0)
np[1] = (0, 255, 0)              # affecte du verte au 2ème NeoPixel (adresse = 1)
np[2] = (0, 20, 0)               # affecte du vert pale au 3ème NeoPixel (adresse = 2)
np.write()                       # écriture des données vers les NeoPixels



Raspberry Pi Pico MicroPython Neopixel WS2812 

Programme pour allumer 3 NeoPixels en bleu du stick


from machine import Pin
from neopixel import NeoPixel    # import de la bibliothèque NeoPixel

np = NeoPixel(Pin(16), 8)        # crée un objet np de 8 Néopixels connectés broche GP16 (repère D16 shield Grove)

for x in range(2, 5):            # boucle pour x de 2 à 4 (2 compris, 5 non compris)
    np[x] = (0, 0, 20)           # affecte du bleu au NeoPixel d'adresse x

np.write()                       # écriture des données vers les NeoPixels



Raspberry Pi Pico MicroPython Neopixel WS2812

Programme pour affecter une couleur et une intensité aléatoire aux 8 NeoPixels


from machine import Pin
from neopixel import NeoPixel
from time import sleep_ms
from random import randint

np = NeoPixel(Pin(16), 8)

while True:
    # Pour chaque NeoPixel, de x = 0 à 7
    for x in range(0, 8):
        # intensité aléatoire entre 0-60 par canaux RVB 
        r = randint(0, 60)
        v = randint(0, 60)
        b = randint(0, 60)

        # Affecte le tuple (r, v, b) au NeoPixel
        np[x] = (r, v, b)

        # Envoi des données aux Neopixels
        np.write()
        sleep_ms(100)























Créé avec HelpNDoc Personal Edition: Créer facilement des fichiers Qt Help