Sur bandeau de LED : Différence entre versions
(Page créée avec « ===== Matériel ===== * 1 Arduino Uno * 1 BANDE LED Adressable (http://www.adafruit.com/product/1506) * 1 Alimentation 5V/3A ou DC ===== Principe ===== Le but est de man... ») |
(Aucune différence)
|
Version du 15 décembre 2015 à 12:43
Sommaire
Matériel
- 1 Arduino Uno
- 1 BANDE LED Adressable (http://www.adafruit.com/product/1506)
- 1 Alimentation 5V/3A ou DC
Principe
Le but est de manipuler la librairie neopixel fourni par Adafruit https://github.com/adafruit/Adafruit_NeoPixel en vue de la dernière journée pour la réalisation du module lightpainting. La première chose à faire est d'importer la librairie Neopixel dans Arduino et de redémarrez au besoin l'IDE.
Vous pouvez ajouter la dépendance de votre programme soit via l'IDE soit en ajoutant manuellement
#include <Adafruit_NeoPixel.h>
Avant de donner des instructions à la bande de Led, il est nécessaire de l'initialiser :
void setup() {
strip.begin();
strip.show();
}
La seconde ligne force les pixels à afficher leur couleur mais comme aucune n'a encore été défini, ceci met tout en off :)
Il existe deux façons de contrôler les pixels :
strip.setPixelColor(n, red, green, blue);
ou bien
uint32_t color = strip.Color(255, 0, 255); (magenta)
strip.setPixelColor(n, color);
Il est aussi possible de récupérer le nombre de pixels déclarés dans la bande
uint16_t n = strip.numPixels();
Et de jouer sur la luminosité
strip.setBrightness(64);
ATTENTION à bien appeler show après toutes ces méthodes comme pour setPixel sinon l'instruction n'est pas poussée vers la bande.
Montage
Fichier:640px-NeoPixel-UserGuide-Arduino-Brancher-01.png
Programme
Le but de ce programme est de faire un chenillard sur la bande de led.
// Simple NeoPixel test. Lights just a few pixels at a time so a
// 1m strip can safely be powered from Arduino 5V pin. Arduino
// may nonetheless hiccup when LEDs are first connected and not
// accept code. So upload code first, unplug USB, connect pixels
// to GND FIRST, then +5V and digital pin 6, then re-plug USB.
// A working strip will show a few pixels moving down the line,
// cycling between red, green and blue. If you get no response,
// might be connected to wrong end of strip (the end wires, if
// any, are no indication -- look instead for the data direction
// arrows printed on the strip).
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define N_LEDS 144
Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
}
void loop() {
chase(strip.Color(255, 0, 0)); // Red
chase(strip.Color(0, 255, 0)); // Green
chase(strip.Color(0, 0, 255)); // Blue
}
static void chase(uint32_t c) {
for(uint16_t i=0; i<strip.numPixels()+4; i++) {
strip.setPixelColor(i , c); // Draw new pixel
strip.setPixelColor(i-4, 0); // Erase pixel a few steps back
strip.show();
delay(25);
}
}