Sur bandeau de LED : Différence entre versions
Ligne 100 : | Ligne 100 : | ||
[[Catégorie:Communiquer avec un ordinateur]] | [[Catégorie:Communiquer avec un ordinateur]] | ||
− | [[Catégorie: | + | [[Catégorie:Formation_Arduino]] |
Version actuelle en date du 3 janvier 2016 à 13:44
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
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);
}
}