Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Bienvenue au nouveau Forum Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions! L'inscription est automatisée.

Auteur Sujet: [Matos] Les fabuleuses LED ws2812 ^^  (Lu 1689 fois)

captain.blood

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
[Matos] Les fabuleuses LED ws2812 ^^
« le: juin 27, 2016, 04:01:53 pm »

Salut,

J'adore les LEDs ^^ Je me suis procuré une cinquantaine de led rgb classiques dans l'idée de faire un petit jeu de lumière coloré. Le soucis c'est que je me suis rendu compte que ça peut etre un projet tres fastidieux, en effet il faut pour chaque led, gérer 3 PWM pilotées par des sequences binaires elles même produites par un microcontroleur.... avec plein de convertisseurs série paralleles... bref une usine a gaz, ne fut-ce que pour 8 leds....

En cherchant je suis tombé sur un nouveau type de leds rgb, les leds adressables :D

4 pins :

- 5V
- Data in
- Data Out
- GND

pas tres cher, moins de 15 euros pour 100 chez les chinois, on en trouve aussi sous forme de bandes (strips) ;)

Il suffit de les souder en série (data out dans data in de la suivante), et on peut en utiliser autant que l'on veut :) on peut aussi en faire des tableaux (un petit exemple par GreatScott : https://www.youtube.com/watch?v=D_QBlFIQk-o )

La datasheet des ws2812b : https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf

On y voit que le traitement des données est assez particulier, l'état bas et l'état haut étant définit par le duty cycle du signal. 0.4µs pour l'etat bas et 0.8µs pour l'etat haut.

Pour piloter celà, un arduino est idéal, il existe 2 librairies qui fonctionnent bien : Neopixel et Fastled. La fréquence du signal de sortie des ports de l'arduino tournent autour de 500 Hz, c'est trop peu pour faire fonctionner les leds donc ces librairies vont parametrer l'AtMega de l'arduino de sorte qu'il puisse fournir ces fréquences plus élevées.

J'ai donc réalisé un petit tableau de 3X3 leds et fais des essais, ça marche impeccable, il suffit d'une résistance de 470 Ohms entre l'arduino et la première led et le tour est joué :) Il convient d'alimenter les leds avec une alim qui peut délivrer du courant avec aisance, on peut vite se retrouver avec 1 ou 2 Ampères (environ 60mA max par led, 100 led ça fait 6 ampères ). Apres ce n'est plus que de la programmation d'effets en tout genre :)






Le microcontrolleur : un arduino entier pour ça c'est un peu exagéré, pour les essais c'est ok mais pour un projet fini, on peut se contenter de quelque chose de plus petit vu que l'on a besoin que d'une sortie. J'ai donc choisi un AtTiny monté sur pcb, il y a une prise USB mais je n'ai pas réussi à le faire fonctionner correctement avec le pc, j'ai donc utilisé un arduino pour le programmer et ça a fonctionné, le petit AtTiny à su faire fonctionner le petit tableau de led sans aucun soucis. Je suppose que de telles librairies doivent exister pour les PICs :)

A savoir : j'ai choppé sur banggood une copie de l'arduino UNO pour moins de 4 euros (marque "geekcreit", celui sur les photos), à part un petit driver à installer il fonctionne identiquement à l'arduino d'origine.

Les applications sont nombreuses : jeux de lumieres, affichage coloré, lumière d'ambiance pour salon.... et surtout plein de fun ^^ On peut aussi piloter le réseau de led directement par le pc via une interface USB-Série (je crois), avec le logiciel gratuit GLEDIATOR ;)

Quelques liens :

Led leds adressables et l'arduino : http://www.tweaking4all.com/hardware/arduino/arduino-ws2812-led/
La librairie neopixel : https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation
La librairie Fastled : http://fastled.io/
Programmer un attiny avec un arduino : http://www.instructables.com/id/Program-an-ATtiny-with-Arduino/step6/Program-the-ATtiny/
Le pcb AtTiny que j'ai utilisé : http://www.banggood.com/ATTINY85-Mini-Usb-MCU-Development-Board-For-Arduino-p-971122.html
L'arduino UNO "geekcreit" : http://www.banggood.com/UNO-R3-ATmega328P-Development-Board-For-Arduino-No-Cable-p-964163.html
Glediator : http://solderlab.de/index.php/downloads/category/4-glediator
Les ws2812 sous divers formats : http://www.banggood.com/search/ws2812.html



IP archivée

eledtronik

  • Administrator
  • Sr. Member
  • *****
  • Messages: 291
  • apprendre c'est bien, le partager c'est mieux
    • Voir le profil
Re : [Matos] Les fabuleuses LED ws2812 ^^
« Réponse #1 le: juin 28, 2016, 07:19:53 am »

excellent !!!  8)
on peut faire pas mal de choses avec ces leds mais attention il faut prendre quelques précautions d’après ce que j'ai pu glaner sur le net

sinon  vraiment sympa sa me donne des idées

des photos peut être de votre montage ?

merci en tout cas pour l'info





IP archivée

Électro-Bidouilleur

  • Administrator
  • Sr. Member
  • *****
  • Messages: 488
  • C'est moi le boss!
    • Voir le profil
    • Site Web Électro-Bidouilleur
Re : [Matos] Les fabuleuses LED ws2812 ^^
« Réponse #2 le: juin 28, 2016, 11:33:19 am »

Excellente façon de simplifier le contrôle de plusieurs LEDs! La seule faiblesse est qu'il n'y a pas de multiplexage de fait, donc toutes les DELs tirent leur plein courant à un cycle de service de 100%. Ça peut en effet devenir assez gourmand comme solution. Mais sinon, c'est très bien pour un petit micro-contrôleur.
IP archivée

captain.blood

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : [Matos] Les fabuleuses LED ws2812 ^^
« Réponse #3 le: juin 29, 2016, 01:28:46 am »

Voilà un petit schéma réalisé avec fritzing (premiere fois que j'utilise ce logiciel ;) ). Vous devriez y voir plus clair.



Je n'ai mis que 6 Leds, on voit que la connexion data out de la led 3 entre dans le data in de la led 6. Dans le code que j'utilise il y a une "option" qui permet de définir si les rangées impaires sont dans l'ordre inverse ou pas, ça permet de faciliter la tâche lors de la soudure des rangées de leds en question. On aurait très bien pu passer directement du data out led 3 dans data in led 4, il suffit de changer la variable dans le code :)

voici le commentaire de la définition de la variable en question dans le code (dans l'exemple "XYMatrix" fourni avec la librairie Fastled) le principe y est illustré :

// Param for different pixel layouts
const bool    kMatrixSerpentineLayout = true;
// Set 'kMatrixSerpentineLayout' to false if your pixels are
// laid out all running the same way, like this:
//
//     0 >  1 >  2 >  3 >  4
//                         |
//     .----<----<----<----'
//     |
//     5 >  6 >  7 >  8 >  9
//                         |
//     .----<----<----<----'
//     |
//    10 > 11 > 12 > 13 > 14
//                         |
//     .----<----<----<----'
//     |
//    15 > 16 > 17 > 18 > 19
//
// Set 'kMatrixSerpentineLayout' to true if your pixels are
// laid out back-and-forth, like this:
//
//     0 >  1 >  2 >  3 >  4
//                         |
//                         |
//     9 <  8 <  7 <  6 <  5
//     |
//     |
//    10 > 11 > 12 > 13 > 14
//                        |
//                        |
//    19 < 18 < 17 < 16 < 15
//
// Bonus vocabulary word: anything that goes one way
// in one row, and then backwards in the next row, and so on
// is call "boustrophedon", meaning "as the ox plows."

L'alim externe est représentée par les piles, les GND de l'arduino et de l'alim externe sont en commun, la R de 470 Ohms est optionnelle mais peut servir de protection en cas de court-circuit dans le réseau de leds. Toutes les Vdd des leds doivent être au +5v et toutes les Vss à la masse, je ne les ai pas toutes connectées dans le schéma pour que ça reste clair ;)

Il est plus facile d'utiliser des bandes (strips) que l'on peut découper, ça evite de souder chaque led l'une apres l'autre. :)

Le seul truc "décevant" c'est qu'il n'y a pratiquement pas d'électronique à réaliser autour de ce leds ^^ tout est déjà fait  :D Mais ça donne un tas d'idées sympas :)

Je vous mets le lien pour Fritzing :) : http://fritzing.org/download/
IP archivée