[Résolu]
Ca y est ! Le ruban fonctionne super bien.
Je suis le roi des c... Le ruban de LED de 5m est équipé de 2 connecteurs 4 broches, un de chaque côté (un mâle et un femelle). Par commodité, j'ai fait tous mes essais avec le connecteur femelle par commodité, n'ayant pas de connecteur adapté pour le côté mâle. Je pensais que l'on pouvait injecter les signaux indifféremment des 2 côtés, comme un bus I2C, RS485... Et bien non, IL FAUT connecter la carte arduino au connecteur mâle pour que cela fonctionne.
Merci B@tto de m'avoir ouvert l'esprit, ta dernière remarque m'a mis sur la voie...
Bon, je poste le code que j'ai utilisé pour tester le ruban de LED adressables (pris sur le site du constructeur).
/***************************************************************************************
Chenillard pour tester le ruban de 5 mètres de LED strip adressables (160 LED)
Commande du ruban de LED basé sur le LPD8806
Allumage successif de chacune des 160 LED (point RGB) dans l'ordre croissant
1er passage en rouge, 2ème en vert, 3ème en bleu, 4ème en blanc
****************************************************************************************/
#include "LPD8806.h" // utilisation des méthodes de la classe LPD8806
#include "SPI.h" // utilisation des méthodes de la classe SPI
const int DUREE_ON = 25; // durée allumage de chaque LED
int nLEDs = 160; // nombre de LED RGB dans le ruban
int dataPin = 51; // signal DATA du bus SPI
int clockPin = 52; // signal CLOCK du bus SPI
// Avec une carte Uno classique, il faut utiliser les broches 11 (data) et
// 13 (clock).
LPD8806 strip = LPD8806(nLEDs); // création d'un objet strip de type LPD8806
void setup() {
// Initialise la connexion SPI : MSB first, mode 0, clock 2 MHz, RAZ registres LED
strip.begin();
// envoi (n registres LED -> n PWM LED), PWM = 0 -> n LED éteintes
strip.show();
}
void loop() {
colorChase(strip.Color(127, 0, 0), DUREE_ON); // chenillard, rouge défile
colorChase(strip.Color( 0,127, 0), DUREE_ON); // chenillard, vert défile
colorChase(strip.Color( 0, 0,127), DUREE_ON); // chenillard, bleu défile
colorChase(strip.Color(127,127,127), DUREE_ON); // chenillard, blanc défile
}
// Une lumière (point) descend le long du ruban
// c : couleur de la lumière, wait : durée d'allumage
void colorChase(uint32_t c, uint8_t wait) {
int i;
// un seul point est affiché à la fois
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c); // charge couleur allumage du point dans registre
strip.show(); // allume le point, registre LED -> PWM LED
strip.setPixelColor(i, 0); // RAZ registre LED, mais PWM tjs active
delay(wait); // temporisation
}
strip.show(); // Eteint le dernier point
}