ESP-01 et anneaux de LEDs

Suite à mon message précédent, où j'avais du mal à faire fonctionner mon module contrôleur de LEDs sur l'ESP-01 avec batterie LiPo 3.7V : finalement, comme souvent, l'erreur était devant le clavier... :confused:

J'ai vérifié les connexions et maintenant ça marche... Enfin presque.
Le module est vendu pour se brancher sur un anneau de 16 LEDs WS2812B et c'est vrai que ça marche avec les 16 LEDs. Mais moi, j'en veux deux (pour faire des lunettes lumineuses animées), donc 32 LEDs. J'aaai donc cascadé deux anneaux. Et là ça coince vers la 21ème LED... Pas assez de courant sur la pin GPIO02 de l'ESP-01 je présume.

J'ai juste besoin d'amplifier ce courant de +50%. Quelqu'un a-t-il une solution (simple por favor :-* ) pour amplifier le courant de commande en sortie du module ?

EDIT : est-ce que ceci serait bon ?


Datasheet PAM8403 (FILTERLESS 3W CLASS-D STEREO AUDIO AMPLIFIER)

Je réponds peut-être une "bêtise" (je ne connais pas l'esp01 ni l'anneau de led) mais si tu n'utilises pas le GPIO0 tu peux peut-être en faire un "double" du GPIO2 histoire de doubler le courant.

Je fais cela sous arduino pour alimenter sur commande (2 broches en sortie à 1) mes module bluetooth HC-0x.

Tu veux dire que j'émets sur les deux GPIOs en même temps et je les branches toutes deux sur l'entrée data du premier anneau ?
ça se tente, mais les out sont faits par FastLED : il faut espérer qu'il n'y a pas de lag entre les deux commandes FastLED.show();

Attend peut-être d'autres avis avant...

Je regarde actuellement la bibliothèque FastLED. D'après le github (GitHub - FastLED/FastLED: The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.) dans les matériel supporté du chipset WS2801 c'est celui là que tu utilises ?

Si c'est lui, tu émules le bus SPI sur le ESP 01 ?

Il faut que je regarde car l'idée était de modifier la bibliothèque pour qu'elle génère le même signal sur les 2 gpio pour limité le lag mais je la découvre et elle est un peu "grosse".

Comment tu alimenteras tes lunettes (je pense à une autre solution utilisant un simple transistor) ?

L'ampli que tu proposes c'est un ampli audio. Définitivement pas adapté.
Le signal est transmis de LED en LED et chacune "bufferise" le signal pour la suivante. On peut cascader des centaines de LEDs sans problème.
Tu devrais vérifier si ton alim ne chute pas sur la longueur de la ligne.
Autre solution, si tes 2 anneaux doivent se comporter de manière identique, tu pourrais les câbler en parallèle plutôt qu'en série.

Merci de vos réponses.
Les anneaux sont ceux-ci :

Je regarde actuellement la bibliothèque FastLED. D'après le github (GitHub - FastLED/FastLED: The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.) dans les matériel supporté du chipset WS2801 c'est celui là que tu utilises ?

Si c'est lui, tu émules le bus SPI sur le ESP 01 ?

Alors là, je sais pas ! Comment trouver le chipset (c'est quoi d'abord) ?
EDIT : après recherche, il semble que les WS2812 utilisent un contrôleur ws2811, pas 2801.

Tu devrais vérifier si ton alim ne chute pas sur la longueur de la ligne.

Comment ? En testant sur chaque LED ?

Autre solution, si tes 2 anneaux doivent se comporter de manière identique, tu pourrais les câbler en parallèle plutôt qu'en série.

Non, je peux avoir deux animations différentes en même temps.

Comment tu alimenteras tes lunettes (je pense à une autre solution utilisant un simple transistor) ?

L'alim est sur le module, mais elle va directement de la batterie aux anneaux. Une solution simple avec transistor me conviendrait...

Alors là, je sais pas ! Comment trouver le chipset (c'est quoi d'abord) ?
EDIT : après recherche, il semble que les WS2812 utilisent un contrôleur ws2811, pas 2801.

Comment tu déclares ton anneau dans ton programme arduino : FastLED.addLeds<???>
C'est à ce moment que tu dois préciser le chipset.

Je demande car l'étude de la solution logicielle nécessite de modifier le controleur associé au chipset et comme la bibliothèque en gère pleins...

L'idée de la solution avec le transistor est sans doute triviale pour les électroniciens (mais je ne suis pas électronicien :-(). Je vais réfléchir mais ne garanti pas le résultat...

EDIT : Si tu pouvais en plus nous "gribouiller" un schéma de ton montage actuel cela nous aiderait je pense à trouver une solution.

Voici le code :

#include "FastLED.h"
// Fastled constants
#define DATA_PIN    2
#define COLOR_ORDER GRB
#define NUM_LEDS    21
#define LED_TYPE    WS2812B
#define BRIGHTNESS  64
CRGB leds[NUM_LEDS];

#define LED_PIN 1  // Built in LED

void setup() {
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setCorrection( TypicalLEDStrip );
  FastLED.setBrightness( BRIGHTNESS );
  FastLED.clear();
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  anim1();
  anim2();
}

void anim1() {
  fill_solid (leds, NUM_LEDS, CRGB::Red);
  FastLED.show();
  digitalWrite(LED_PIN, LOW);  //  Turn the LED on
  delay(200);
  fill_solid (leds, NUM_LEDS, CRGB::Blue);
  FastLED.show();
  delay(200);
  fill_solid (leds, NUM_LEDS, CRGB::Green);
  FastLED.show();
  digitalWrite(LED_PIN, HIGH); //  Turn the LED off
  delay(200);
  fill_solid (leds, NUM_LEDS, CRGB::White);
  FastLED.show();
  delay(200);
}

void anim2() {
  FastLED.clear();
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[(i - 1) % NUM_LEDS] = 0;
    leds[i] = CRGB::Red;
    FastLED.show();
    delay(20);
  }
}

Le schéma n'est pas facile car j'utilise un module intermédiaire avec des composants dessus, comme celui-ci :

J'ai posté un post similaire sur le forum US, section LED. Une première réponse laisse entendre que ce ne serait pas forcément un problème de courant sur la ligne data...

lesept:
J'ai donc cascadé deux anneaux. Et là ça coince vers la 21ème LED... Pas assez de courant sur la pin GPIO02 de l'ESP-01 je présume.

Il n'y a pas de courant dans la ligne de donnée.
Quel est le problème en fin de compte. Tu ne l'as jamais expliqué.

#define NUM_LEDS 21

:slight_smile:

Bon, et bien c'est peut-être une led défaillante et du coup la chaîne de commandes ne passe plus après... :frowning:

EDIT : Bravo kayel :clap:

J'ai honte...
J'ai du taper trop vite et faire 21 au lieu de 32...

lesept:
J'ai honte...

J'espères bien!

:slight_smile:

Bonne nuit!

C'est bon, la nuit porte conseil et ce matin, ça fonctionne ! Merci !!!

lesept:
Mais moi, j'en veux deux (pour faire des lunettes lumineuses animées),

Hahaha, on aura une photo? ^^

Mieux ; une vidéo
C'est juste pour montrer les anneaux et des animations de base. Le meilleur est à venir...