IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Déclaration du nombre de leds


Sujet :

Arduino

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Autres
    Inscrit en
    June 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : June 2023
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Déclaration du nombre de leds
    Bonjour

    J'ai un projet où je dois déclarer 4500 leds (30 bandes de 150leds), je n'ai pas besoin de toutes les allumer en même temps
    J'ai commencé mon programme en essayant avec une bande, pas de soucis que ce soit avec la bibliothèque Fastled ou Adafruit_NeoPixel. Lorsque j'ai su le nombre de leds à déclarer, je l'ai déclaré avec une constante.
    - avec fastleds: pas possible, ça m'a pris toute ma mémoire dynamique...
    - avec Adafruit_NeoPixel: je ne peux pas aller au dela de 1983, après les leds ne sont plus controlables...mais apparemment ça ne prend pas de place dans la mémoire dynamique, je suis à 0%
    Y a t il un moyen de contourner ce probleme ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    April 2004
    Messages
    7 628
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : April 2004
    Messages : 7 628
    Points : 10 897
    Points
    10 897
    Par défaut
    Bonjour,

    tes bandes sont chaînées ?

    Pourquoi ne pas répartir tes 30 bandes sur 6 pins ? Cela fera 5 bandes par pin et donc 5x150 = 750 LED à piloter.
    Tu déclares 6 objets, ou un tableau de 6 objets, Adafruit_NeoPixel avec 750 LEDs.

  3. #3
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    September 2019
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : September 2019
    Messages : 2 524
    Points : 4 885
    Points
    4 885
    Par défaut
    concrètement vous n'aurez pas assez de RAM sur les petits arduinos pour toutes ces LEDs.

    donc il faut tricher et utiliser quelques buffers (pour que ça rentre dans la mémoire) qui seront partagés entre les bandeaux et utiliser plusieurs contrôleurs (cf https://github.com/FastLED/FastLED/w...oller-Examples)

    à vous de répartir les contrôleurs pour que ça pilote les LEDs que vous voulez

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    April 2004
    Messages
    7 628
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : April 2004
    Messages : 7 628
    Points : 10 897
    Points
    10 897
    Par défaut
    Je ne connais pas cette syntaxe C++ avec les < >:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FastLED.addLeds<NEOPIXEL, 10>(leds[0], NUM_LEDS_PER_STRIP)
    de quoi s'agit-il ? On dirait un template, mais je ne le comprends pas.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Autres
    Inscrit en
    June 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : June 2023
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Bonjour,

    tes bandes sont chaînées ?

    Pourquoi ne pas répartir tes 30 bandes sur 6 pins ? Cela fera 5 bandes par pin et donc 5x150 = 750 LED à piloter.
    Tu déclares 6 objets, ou un tableau de 6 objets, Adafruit_NeoPixel avec 750 LEDs.
    De base, je voulais les chainer pour simplifier le cablage, mais du coup j'ai pensé à ce que tu me proposes pour la bibliothèque d'Ada et utiliser 4 pins pour 1200 leds/pin, mais cela implique de repenser le cablage, je ne pense pas avoir le choix

    concrètement vous n'aurez pas assez de RAM sur les petits arduinos pour toutes ces LEDs.

    donc il faut tricher et utiliser quelques buffers (pour que ça rentre dans la mémoire) qui seront partagés entre les bandeaux et utiliser plusieurs contrôleurs (cf https://github.com/FastLED/FastLED/w...oller-Examples)

    à vous de répartir les contrôleurs pour que ça pilote les LEDs que vous voulez
    Effectivement le uno est limité en mémoire, j'ai aussi un giga mais les bibliotheques ne sont pas encore "compatible" et je ne peut rien contoler...
    Il n'y a qu'avec la bibli d'Ada que je pourrais m'en sortir avec plusieurs pins (à tester), il m'est impossible de déclarer toutes mes leds avec fastled.

    de quoi s'agit-il ? On dirait un template, mais je ne le comprends pas.
    Je ne sais pas ce qu'est un template, mais a priori ça permet de créer une "table à 2 colonnes" pour un appel plus simplifier.

    Il ne me reste plus qu'à tester, si ça fonctionne, le problème sera semi résolu
    En tout cas merci pour vos retours

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    April 2004
    Messages
    7 628
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : April 2004
    Messages : 7 628
    Points : 10 897
    Points
    10 897
    Par défaut
    Citation Envoyé par Linoops Voir le message
    Je ne sais pas ce qu'est un template, mais a priori ça permet de créer une "table à 2 colonnes" pour un appel plus simplifier.
    C'est bien la notation d'un template C++. Une template est une fonction qui admet des arguments génériques. Les paramètres entre les < > permet de spécifier le type des arguments passés à la fonction.
    https://cpp.developpez.com/faq/cpp/?page=Les-templates
    https://cpp.developpez.com/cours/cpp/?page=page_14

Discussions similaires

  1. Déclaration du nombre PI.
    Par f5nfb dans le forum Ada
    Réponses: 3
    Dernier message: 13/06/2023, 21h54
  2. Nombre aléatoire et déclaration de la fonction
    Par petitours dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/05/2008, 02h57
  3. Réponses: 8
    Dernier message: 16/07/2007, 17h39
  4. Réponses: 9
    Dernier message: 15/05/2007, 13h41
  5. nombre de déclarations inconnu
    Par Elstak dans le forum C
    Réponses: 25
    Dernier message: 27/04/2007, 02h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo