Adafruit NeoPixel
Introduction
Dans cet article nous décrivons le Flora RGB Smart NeoPixel version 2
Voir également:
Le pixel
Caractéristiques principales:
- 12,5 mm de diamètre
- 2,5 mm d'épaisseur totale
- Protocole de vitesse 800 KHz
- Conception enchaînée, ce qui signifie que vous pouvez en connecter plusieurs à une seule broche et les enchaîner
- Alimentation 5-9VDC (peut fonctionner à 3,5V mais la couleur sera atténuée), courant constant 18,5mA par LED (~ 55mA max total par pixel)
Brancher un NeoPixel
Selon la page brancher des pinces crocodile (récupéré en juin 2022), un NeoPixel doit être connecté avec trois fils à une carte de type FLORA. Selon la carte, les possibilités de câblage peuvent être différentes. Par exemple. sur une GEMMA, vous avez moins de choix, mais le principe est le même :
- Connectez le câble + à un pad VOUT (Volt Out)
- Connectez le câble - à un pad GND (mise à la terre)
- Connectez le câble de données à un pad d'entrée/sortie à usage général, par ex. A1.
Nous vous suggérons d'utiliser des couleurs standard pour vos câbles, c'est-à-dire le rouge pour le +, le noir pour le - et le jaune ou le blanc pour les données.
Câblage depuis un CPX
Pads sur la carte | NeoPixel | Bande LED avec câbles |
---|---|---|
VOUT (puissance de sortie) | + | rouge |
GND (ground/"sol" ou base) | - | noir |
A1 (ou un autre pad d'entrée/sortie à usage général, c'est-à-dire A0 à A7) | ↑ (flèche pointant vers l'intérieur) | jaune ou blanc |
Notez que A0 à A7 sont différents en ce qui concerne les autres fonctionnalités, vous pouvez donc aussi bien utiliser A1 à A3 car ils ne peuvent pas être utilisés pour autre chose que l'entrée/sortie numérique et l'entrée analogique.
Câblage depuis un GEMMA
Pads sur la carte | NeoPixel | Bande LED avec câbles |
---|---|---|
VOUT (puissance de sortie) | + | rouge |
GND (ground/"sol" ou base) | - | noir |
D1 / ~A0 ou A1, A2 (sortie d'entrée à usage général) | ↑ (flèche pointant vers l'intérieur) | jaune ou blanc |
Exemple MakeCode pour le Circuit Playground Express
Pour manipuler une bande de NeoPixels externes vous devrez :
- Définir la bande
- Utiliser les méthodes de bande pour définir les couleurs et d'autres choses. Ci-dessous, nous utilisons les méthodes "setPixelColor(index,color)" et "setAll (...)".
Cela fonctionne également avec un seul pixel. Au lieu d'utiliser des boucles pour itérer sur chaque pixel, travaillez simplement avec le pixel à l'index 0.
- Inspiration : coder avec Makecode
L'exemple suivant effectue les opérations suivantes :
- Au démarrage, une courte animation de 5 secondes de la bande
- Après cela, tout devient noir (off)
- En appuyant sur le bouton A -> Tous les pixels seront bleus
- En appuyant sur le bouton B -> Tous les pixels seront rouges
- En appuyant sur la bande A3 (ou la bande de cuivre attachée) : Trois boucles qui s'allumeront avec des couleurs différentes. Après cela : tout est réglé sur jaune
Pour jouer avec cet exemple, copiez simplement le code ci-dessous, puis collez-le dans l'onglet de code JavaScript {} sur https://makecode.adafruit.com/#editor. Vous pouvez ensuite passer à l'éditeur de blocs. Assurez-vous de commencer à partir d'un nouveau projet.
// Button A down
input.buttonA.onEvent(ButtonEvent.Down, function () {
// show blue on all pixels
strip.setAll(0x0000FF)
})
// Button B down
input.buttonB.onEvent(ButtonEvent.Down, function () {
// show red on all pixels
strip.setAll(0xFF0000)
})
// A3 touched (you could add a strip of copper)
input.touchA3.onEvent(ButtonEvent.Down, function () {
for (let index2 = 0; index2 <= strip.length(); index2++) {
strip.setPixelColor(index2, 0xff0000)
pause(100)
}
for (let index22 = 0; index22 <= strip.length(); index22++) {
strip.setPixelColor(index22, 0x00ff00)
pause(100)
}
for (let index3 = 0; index3 <= strip.length(); index3++) {
strip.setPixelColor(index3, 0x0000ff)
pause(100)
}
for (let index32 = 0; index32 <= strip.length(); index32++) {
strip.setPixelColor(index32, 0xffff00)
}
})
let strip: light.NeoPixelStrip = null
// mount an external Neopixel strip on pin A1 with 30
strip = light.createStrip(pins.A1, 30)
// show default animation for 5 seconds
strip.showAnimation(light.rainbowAnimation, 5000)
// Turn it off (make colors black)
for (let index = 0; index <= strip.length(); index++) {
strip.setPixelColor(index, 0x000000)
}
Liens
Documentation générale officielle (à lire)
Tutoriels