Go Down

Topic: Afficheur LED (Read 573 times) previous topic - next topic

val061998

Bonsoir,

Je réalise un projet, je fabrique un afficheur LED avec des rubans LED, pour cela j'ai acheter des rubans WS2813 que j,ai fixer sur une plaque en PVC. J'ai 24 bandeaux de LED (soit 1440 LED au total) d'un metre que j'alimente avec 2 alimentation de 5V/60A chacune (chaque alimentation possede 3 sorti V+ et V-). A terme je souhaiterai pouvoir afficher du texte sur le panneau.

Mais voila mon probleme, pour relier tout mes LED a mon arduino UNO, j'ai diviser mon panneau en 6 pour avoir une information correct, j'ai alors pour 1 Pin = 4 mètres de LED (240 LEDs) Mais voila mon probleme, quand je teste d'allumer tout le panneau en rouge, seulement les 8 premières lignes s'affichent et clignotent n'importe comment.Cependant quand je teste 1 par 1 les 6 pins, les 4 lignes concernées s'affichent correctement. Mon branchement est tel :
- 6 Pin pour 6*4 rubans
- 3 V+ qui vont sur les +5V des bandeaus, les GND des memes rubans sont reliés au V- de la MEME alimentation
- Les V- des deux alimentations sont relié un a un
- Un câble qui va du GND de l'Arduino vers un V- d'une alimentation

Pour le programme, A la base j'utilise la librairies FastLed, mais elle utilise 3 fois plus de SRAM du coup je me suis rabattu sur la Librairie d'adafruit Neopixel voici avec cela le programme televersé sur l'arduino.

Du coup je ne sais pas du tout si mon problème vient de mes branchements ou bien de mon programme :(

PS : excusez moi pour toutes les fautes que j'ai pu faire ^^ Ah oui et je suis assez debutant en Arduino ;)

val061998

Voici le code

Code: [Select]
#include <Adafruit_NeoPixel.h>

#define PINA 6
#define PINB 7
#define PINC 8
#define PIND 9
#define PINE 10
#define PINF 11


// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

Adafruit_NeoPixel stripA = Adafruit_NeoPixel(240, PINA, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel stripB = Adafruit_NeoPixel(240, PINB, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel stripC = Adafruit_NeoPixel(240, PINC, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel stripD = Adafruit_NeoPixel(240, PIND, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel stripE = Adafruit_NeoPixel(240, PINE, NEO_RGBW + NEO_KHZ800);
Adafruit_NeoPixel stripF = Adafruit_NeoPixel(240, PINF, NEO_RGBW + NEO_KHZ800);




// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  stripA.begin();
  stripA.show();

  stripB.begin();
  stripB.show();

  stripC.begin();
  stripC.show();

  stripD.begin();
  stripD.show();
 
  stripE.begin();
  stripF.show();
 
  stripD.begin();
  stripD.show();
 

  stripA.setBrightness(64);
  stripB.setBrightness(64);
  stripC.setBrightness(64);
  stripD.setBrightness(64);
  stripE.setBrightness(64);
  stripF.setBrightness(64);

}

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(stripC.Color(255, 0, 0), 10); // Red
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
 
  for(uint16_t i=0; i<239; i++) {
    stripA.setPixelColor(i, c);
    stripB.setPixelColor(i, c);
    stripC.setPixelColor(i, c);
    stripD.setPixelColor(i, c);
    stripE.setPixelColor(i, c);
    stripF.setPixelColor(i, c);

  }
    stripA.show();
    stripB.show();
    stripC.show();
    stripD.show();
    stripE.show();
    stripF.show();

    delay(wait);
}

fifi82

ça serai pas un problème de mémoire car pour 1440 néopixels il faut au moins 5ko de mémoire pour les variables et une uno en possède que 2ko 


val061998

Merci beacoup de la réponse je vais donc essayer de passer sur une Arduino Mega :)

Go Up