Besoin d'aide pour premier projet

Bonjour
je m'appelle julien 29ans et je suis artisan.
je me lance dans la découverte de l'arduino
je suis complétement débutant dans ce domaine et je ne connais pas grand chose.
j’ai beau parcourir différent forum et vidéo tuto cela ne résous pas mon problème et surtout cela ne m'apprend pas a corriger mes erreurs c'est pour cela que je viens vers vous.

je souhaite me lancer dans un ambilight sur mon écran d'ordi. je possède une bande led adressable individuellement (ws2812)
alimentation en 5v 10a
arduino nano.

la bande est installer, le 5v passe bien partout.
l’Arduino est bien détecter et j'arrive a téléverser dessus des codes trouver sur le net. j’ai beau en tester plusieurs ainsi que plusieurs logiciel (Prismatik; Ambibox...) mais aucune led ne s'allume.
je ne trouve pas d’où peux provenir le problème.

Merci d'avance pour votre aide.

manque d'infos...
reference bandeau leds ws2812 (lien du produit acheté)
code
biblio (library) utilisée
branchements effectués ?

désolé je vais essayer de répondre au maximum. je répétè que je suis vraiment novice dans le domaine Arduino et les logiciel qui vont avec ( abreviation et therme compris )

led : modele 3m 60 led

bibliothèque:

fast led

Adalight

pour les branchements:

  • led direct sur + alimentation
    masse alimentation sur GND arduino
    masse led egalement sur GND arduino
    Fil vert (pilote) sur borne D5 arduino

Est-ce que tu arrives à faire fonctionner un exemple de la bibliothèque FastLED ?
As-tu suivi les indications données ici ?

ouille tout en anglais...
qu'est ce qu'un exemple de la bibliothèque fastLED?

voila ce que jai sur arduino

  • Arduino interface for the use of WS2812 strip LEDs
  • Uses Adalight protocol and is compatible with Boblight, Prismatik etc...
  • "Magic Word" for synchronisation is 'Ada' followed by LED High, Low and Checksum
  • @author: Wifsimster wifsimster@gmail.com
  • @library: FastLED v3.001
  • @date: 11/22/2015
    */
    #include "FastLED.h"
    #define NUM_LEDS 112
    #define DATA_PIN 5

// Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
#define serialRate 115200

// Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;

// Initialise LED-array
CRGB leds[NUM_LEDS];

void setup() {
// Use NEOPIXEL to keep true colors
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

// Initial RGB flash
LEDS.showColor(CRGB(255, 0, 0));
delay(500);
LEDS.showColor(CRGB(0, 255, 0));
delay(500);
LEDS.showColor(CRGB(0, 0, 255));
delay(500);
LEDS.showColor(CRGB(0, 0, 0));

Serial.begin(serialRate);
// Send "Magic Word" string to host
Serial.print("Ada\n");
}

void loop() {
// Wait for first byte of Magic Word
for(i = 0; i < sizeof prefix; ++i) {
waitLoop: while (!Serial.available()) ;;
// Check next byte in Magic Word
if(prefix == Serial.read()) continue;

  • // otherwise, start over*

  • i = 0;*

  • goto waitLoop;*

  • }*

  • // Hi, Lo, Checksum *

  • while (!Serial.available()) ;;*

  • hi=Serial.read();*

  • while (!Serial.available()) ;;*

  • lo=Serial.read();*

  • while (!Serial.available()) ;;*

  • chk=Serial.read();*

  • // If checksum does not match go back to wait*

  • if (chk != (hi ^ lo ^ 0x55)) {*

  • i=0;*

  • goto waitLoop;*

  • }*

memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));

  • // Read the transmission data and set LED values*
  • for (uint8_t i = 0; i < NUM_LEDS; i++) {*
  • byte r, g, b; *
  • while(!Serial.available());*
  • r = Serial.read();*
  • while(!Serial.available());*
  • g = Serial.read();*
  • while(!Serial.available());*
  • b = Serial.read();*
    _ leds*.r = r;_
    _ leds.g = g;
    leds.b = b;
    }*_

* // Shows new values*
* FastLED.show();*

fastLed n'est pas vraiment le plus simple pour un PREMIER projet, et encore moins le croquis listé qui ne compile pas sur mon IDE d'ailleurs

à chaque "croquis" fastLed "trouvé" sur le net,il faut adapter le constructeur pour les w2812B :

FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

OU

FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);

ta question "qu'est ce qu'un exemple de la bibliothèque fastLED?" me laisse perplexe..

choisir l'exemple blink, verifier DATA_PIN où se connecte le fil vert EN SERIE avec une résistance entre 470 ohms et 1000 ohms de préférence, valeur non critique

tu devrais débuter avec l'exemple "simple" de la biblio adafruit_neopixel

question bête :
une fois que tu aura réussi à faire marcher tes LEDs,
comment vas-tu faire pour capter l'image TV de façon à calculer ton ambilight ?

Il y a un soft qui tourne sur le pc et communique avec l'arduino

jai suivi tes conseil et jai televerser ceci :

#include <FastLED.h>

// How many leds in your strip?
#define NUM_LEDS 112

// For led chips like WS2812, which have a data line, ground, and power, you just
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
// Clock pin only needed for SPI based chipsets when not using hardware SPI
#define DATA_PIN 5
#define CLOCK_PIN 13

// Define the array of leds
CRGB leds[NUM_LEDS];

void setup() {
// Uncomment/edit one of the following lines for your leds arrangement.
// ## Clockless types ##
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // GRB ordering is assumed
// FastLED.addLeds<SM16703, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1829, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1812, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1904, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS2903, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
// FastLED.addLeds<WS2852, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
// FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
// FastLED.addLeds<GS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SK6812, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
// FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<APA106, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<PL9823, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2813, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2811_400, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<GE8822, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD1886, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD1886_8BIT, DATA_PIN, RGB>(leds, NUM_LEDS);
// ## Clocked (SPI) types ##
// FastLED.addLeds<LPD6803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // BGR ordering is typical
// FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // BGR ordering is typical
// FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // BGR ordering is typical
// FastLED.addLeds<SK9822, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS); // BGR ordering is typical
}

void loop() {
// Turn the LED on, then pause
leds[0] = CRGB::Red;
FastLED.show();
delay(500);
// Now turn the LED off, then pause
leds[0] = CRGB::Black;
FastLED.show();
delay(500);

j’ai bien changé le data pin en 5 et j’ai mis 112 pour le nombre de leds.
aucune led ne s'allume sauf la une qui clignote faiblement, sachant que je n’est pas de résistance d'installer ( je la recois demain) cela peut il être la cause?

pas si simple l'arduino :confused:
je n'est pas de resistance sous la main mon

Tu vois dans les premières lignes du setup toute une liste de lignes commentées (c'est à dire commençant par // ). Il faut que tu trouves quelle ligne correspond à ton type de led. Pour ça, il faut les essayer une par une (c'est à dire mettre // devant celle qui n'en a pas et enlever les // d'une autre ligne, et ainsi de suite) jusqu'à ce que ça marche.
Si ton ruban de led a 3 fils, tu dois trouver la ligne parmi celles qui sont AVANT celle-ci :

// ## Clocked (SPI) types ##

S'il a 4 fils, c'est parmi celles qui sont après.

Donc, tu commentes la ligne non commentée :

FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed

qui devient

// FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed

et tu dé-commentes la suivante :

// FastLED.addLeds<SM16703, DATA_PIN, RGB>(leds, NUM_LEDS);

qui devient

FastLED.addLeds<SM16703, DATA_PIN, RGB>(leds, NUM_LEDS);

Tu télécharges et si leds s'allument c'est la bonne ligne. Sinon, tu passes à la suivante...

Si tu penses avoir des WS2812, essaye directement avec la ligne

    // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical

ou celle avec WS2812B.

lorsque je met la ligne ws2812 ou ws2812B la premiere led clignote faiblement mais pas les autres.

Je mets 10 balles sur Lesept, c'est son truc ça

Tu me mets la pression surtout...

avec des ws2812B : la ligne #define CLOCK_PIN 13 est inutile on peut l'effacer ou mettre
2 slash
//#define CLOCK_PIN 13

le code exemple "blink" ne fera clignoter que la led[0] : la premiere quel que soit la longueur du strip

exemple "cylon" testé sur un ruban 24 leds (avec la résistance en série sur le fil VERT) :

que je déclare : FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

OU : FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);

le fonctionnement est identique (pour les puristes les couleurs rouge et verte sont inversées)

tu peux débrancher ton alim 5v 10A, tester en mettant le nombre de leds à 12 ou 16 ou 24
et brancher ton ruban comme ICI meme si ton ruban fait 3 metres avec 60 leds/metre (ce qui fait 180 et pas 112 d'ailleurs), le nombre de leds allumées correspondra à ta déclaration #define NUM_LEDS xx
attends d'avoir la résistance pour tester

#include "FastLED.h"

// How many leds in your strip?
#define NUM_LEDS 24

#define DATA_PIN 5

// Define the array of leds
CRGB leds[NUM_LEDS];

void setup() { 

      //FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
   FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

 
	LEDS.setBrightness(84);
}

void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } }

void loop() { 
	static uint8_t hue = 0;
	
	// First slide the led in one direction
	for(int i = 0; i < NUM_LEDS; i++) {
		// Set the i'th led to red 
		leds[i] = CHSV(hue++, 255, 255);
		// Show the leds
		FastLED.show(); 
		// now that we've shown the leds, reset the i'th led to black
		// leds[i] = CRGB::Black;
		fadeall();
		// Wait a little bit before we loop around and do it again
		delay(10);
	}


	// Now go in the other direction.  
	for(int i = (NUM_LEDS)-1; i >= 0; i--) {
		// Set the i'th led to red 
		leds[i] = CHSV(hue++, 255, 255);
		// Show the leds
		FastLED.show();
		// now that we've shown the leds, reset the i'th led to black
		// leds[i] = CRGB::Black;
		fadeall();
		// Wait a little bit before we loop around and do it again
		delay(10);
	}
}

Ca, c'est pas en anglais (enfin si un peu) :


Il te faut : une résistance en série avec le fil de commande (GPIO de l'arduino), une alimentation suffisamment musclée (prendre 5V & 60mA par led soit 11A pour 180 leds) et une capacité de 1000µF comme indiqué sur le schéma. L'alim peut aussi être utilisée pour alimenter l'arduino, dans tous les cas les masses (alim et arduino) doivent être reliées. Pour un grand nombre de leds, il est possible d'alimenter en plusieurs endroits (au début du ruban et à la fin) pour s'assurer que toutes les leds sont bien alimentées.

Mais pour tester un exemple de la bibli, tu peux limiter ton code à 8 leds (#define NUM_LEDS 8) et alimenter le ruban avec l'arduino (sortie 5V).

résistance installer( 470ohms).
avec ou sans alim même résultat.
toujours la premiere led qui scintille et rien dautre...

jai dit 112 led car jai couper le ruban pour l'adapter a mon ecran.
je ne comprend plus rien :confused: :confused:

As-tu testé ce que je t'ai proposé au message 9 ?

bon vous pouvez me taper.....
je viens de me rendre compte que j’ai brancher la fin de la bande led et non pas le début... donc je n'alimentait que la dernière. je ne savais pas qu'il y avais un sens sur les bandes led sachant qu'on peux l'alimenter des deux coté...

comme ecrit plus haut, je debute dans le domaine :grinning:

je refait mon branchement ce soir et je reviens vers vous.
merci de votre patience avec un cas désespérer comme le miens :kissing:

Oui, les leds ont un sens, comme tu le vois sur l'image de la réponse 14, avec une flèche sur le ruban. La flèche montre le sens du courant de commande, donc il faut brancher la commande à l'extrémité qui est au pied des flèches.

Pour l'alimentation, tu peux alimenter des deux côtés, voire même au milieu, et même les 3...

DIN : data input, :slight_smile: