Créer un éclairage de marquee LED dynamique avec Arduino Nano et NeoPixels
Composants et fournitures
- Arduino Nano R3 × 1
- Bandeau NeoPixel × 1
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Éclairage de marquee animé simple à faire soi-même
Ce tutoriel simple montre comment ajouter un éclairage animé à votre borne d'arcade ou à d'autres projets. Il peut être utilisé pour l'éclairage (arrière) de marquees et bien d'autres usages.
Vous aurez besoin d'un Arduino Nano (ou carte compatible), d'un bandeau de NeoPixels et de 3 fils.
La construction
Consultez la vidéo ci-dessous pour la construction :
Configuration rapide
Matériel : Soudez trois fils de l'Arduino Nano vers le bandeau NeoPixel : 5V, signal numérique (j'ai choisi la broche 2 sur l'Arduino) et la masse.
Astuce : Utilisez un morceau de gaine thermorétractable pour regrouper les câbles, surtout le bandeau LED (assurez-vous que les connexions soudées sont recouvertes). Cela empêchera les connexions de se dessouder.



Code : Définissez le nombre de LEDs du bandeau connecté dans le code, téléversez-le sur l'Arduino et testez. J'ai utilisé une animation « marche », clignotante et pulsante dans le sketch, utilisant uniquement la couleur blanche. Vous pouvez ajuster le code pour toutes sortes d'animations et utiliser de nombreuses couleurs. Ou simplement un rétroéclairage simple, selon vos préférences.

La construction : J'ai découpé 2 morceaux de carton qui s'adaptent parfaitement dans mon meuble. Un morceau sert de fond pour coller le bandeau NeoPixel. L'autre bande est placée à plat derrière le bas de la marquee pour empêcher la lumière des NeoPixels de briller directement vers le bas. Ensuite, j'ai dû couper quelques petits bords pour l'adapter à mon meuble.

J'ai mis quelques morceaux de ruban gaffa sur le carton pour les rendre noirs. J'ai collé le bandeau NeoPixel sur le carton et scotché les fils et le Nano à l'arrière du carton.



Placez les 2 parties dans le meuble et connectez un câble USB du Nano à une source d'alimentation 5V. Dans mon meuble, il est connecté à un port USB d'un Raspberry Pi.

Remettez ensuite la marquee d'origine ou créez la vôtre pour personnaliser votre construction. J'en ai créé une simple, l'ai imprimée sur du papier photo et l'ai découpée pour qu'elle s'adapte à la marquee.
Astuce : Le résultat final sera encore meilleur si vous faites imprimer votre design sur film par une imprimerie professionnelle.

Bibliothèques
Le sketch nécessite une bibliothèque :
- Bibliothèque Adafruit NeoPixel
Licence
Des parties du sketch ont été trouvées sur internet, tout le crédit revient aux créateurs. Libre d'utilisation pour usage personnel, pas pour des fins commerciales. Vous pouvez me contacter à ericBcreator@gmail.com.
Code
Code d'éclairage de marquee animé
/* **********************************************************************
* Éclairage de marquee avec NeoPixels par ericBcreator
* script simple pour éclairer une marquee (d'arcade)
**********************************************************************
* dernière mise à jour 20181021 par ericBcreator
*
* Inspiré par un article de sandyjmacdonald
* https://sandyjmacdonald.github.io/2015/12/02/picade-errata/
*
* composants :
* - Bandeau NeoPixel
* - Arduino Nano
*
* Ce code est libre pour usage personnel, pas pour des fins commerciales.
* Merci de laisser cet en-tête intact.
*
* contact : ericBcreator@gmail.com
********************************************************************** */
// inclusion des bibliothèques
#include <Adafruit_NeoPixel.h>
#define PIN 2 // broche de connexion du bandeau
// variables de configuration et initialisation du bandeau NeoPixel
int numOfLeds = 11; // nombre de LEDs sur le bandeau
int minBrightness = 80; // luminosité minimum pour pulsation/clignotement (0-255)
int maxBrightness = 255; // luminosité maximum pour pulsation/clignotement (0-255)
int walkingLedsDelay = 250; // délai en ms pour les LEDs qui « marchent »
int flashDelay = 250; // délai en ms pour le clignotement
int numOfFlashLoops = 3; // nombre de boucles de clignotement
int numOfPulseLoops = 10; // nombre de boucles de pulsation min/max
int pulseDelay = 20; // délai en ms lors de la pulsation
Adafruit_NeoPixel strip = Adafruit_NeoPixel(numOfLeds, PIN);
void setup() {
strip.begin();
}
void loop() {
walkingLeds(); // affiche les LEDs qui marchent
flashLeds(); // fait clignoter les LEDs
for (int i = 0; i < numOfPulseLoops; i++) // pulse les LEDs
pulseBrightness();
}
void walkingLeds() {
setLedColorsToZero();
strip.setBrightness(maxBrightness);
strip.show();
for (int x = numOfLeds; x > 0; x--) {
strip.setPixelColor(x, strip.Color(255, 255, 255));
strip.show();
delay(walkingLedsDelay);
strip.setPixelColor(x, 0);
strip.show();
}
}
void flashLeds() {
setLedColors();
for (int i = 0; i < numOfFlashLoops; i++) {
strip.setBrightness(maxBrightness);
strip.show();
delay(flashDelay);
strip.setBrightness(minBrightness);
strip.show();
delay(flashDelay);
}
}
void pulseBrightness() {
setLedColors();
for (int i = minBrightness; i < maxBrightness; i++) {
strip.setBrightness(i);
strip.show();
delay(pulseDelay);
}
for (int i = maxBrightness; i > minBrightness; i--) {
strip.setBrightness(i);
strip.show();
delay(pulseDelay);
}
}
void setLedColors() {
for (int x = 0; x < numOfLeds; x++)
strip.setPixelColor(x, strip.Color(255, 255, 255));
}
void setLedColorsToZero() {
for (int x = 0; x < numOfLeds; x++)
strip.setPixelColor(x, strip.Color(0, 0, 0));
}
Schéma

Processus de fabrication
- Construire un réseau de capteurs sans fil abordable pour votre maison
- Construire un robot piloté par Internet avec streaming vidéo Arduino & Raspberry Pi
- Maîtriser la conception électrique : Optimiser les projets avec les fonctions E3.schematic
- Contrôler votre ventilateur de plafond avec Alexa : Guide étape par étape
- Surveiller la température de votre maison n'importe où avec Arduino Cloud
- Contrôler votre TV avec Alexa via Arduino IoT Cloud – Guide étape par étape
- Intégrez votre chauffage central avec Arduino pour un contrôle intelligent
- Brochage MKR1000 : La Carte de Référence pour le Développement IoT
- Libérer l'automatisation avancée : pourquoi la vision 3D est essentielle pour vos projets