version 1.0
29/04/2018


Test Ruban 32 Leds RGB avec controleur WS2801



Le Ruban 32 leds RGB :

images/t_Led_Strip_1M_32leds.gif images/WS2801_digital_led_strip.jpg
le ruban tel que livré un des 32 modules

1 m WS2801 magique RVB IP67 DC5V ICouleur WS2801 Puce LED bande 32 LEDs/M (5.62€ chez Alivavite )


Principe de commande :

images/WS2801_principe_schem.jpg
On ne peut pas faire plus simple


HARDWARE Prototype :

Un PIC 18F46K22 est utilisé pour ce test .. un marteau pilon pour enfoncer un clou ?
Utilisation du SPI 1 Hardware pour piloter le ruban.
FOSC interne de 16 MHz ..
Attention : problematique si FOSC/4 pour le SPI => usage de FOSC/16 ..OK
L'alim du PIC, dans ce test est fournie poar le PICKIT2 Vdd=5,0V
L'alim 5V externe aliment le ruban ,via les 2 gros fils d'alimentation Noir et Rouge,
Elle est aussi connecté aux raccord sur le 0V et le +Alim
De meme les 0V Alim Exterieure et 0V Pickit2 sont reliés .
Une R de 6,8K est montée en pull up sur la pin Reset du MCU, qui recoit aussi VPP du Pickit2..
Les liaisonsISCP Pickit2 sur RB7 et RB6
Alim PIC dédoublée :2 x Vdd et 2x Gnd sur ce pic.
Pas de quartz: FOSC Interne.

images/t_Proto_Ruban_Led_180429.gif


Software :

On pêut utiliser un simple SPI Bit-bang, mais puisqu'on a un SPI Hardware sur ce PIC, pourqoui s'en priver.
Les commandes envoyees au WS2801 se font TOUJOURS modulo 24 bits .
avec une commande START prealable, qui doit durer 500µS , et une FIN de commande .
On ne peut pas intercaler de tempo dans la phase d'envoi des 24 bits ou 3 bytes
qui correspondent aux 3 niveaux de couleurs ROUGE,BLEU et VERT . et non dans l'ordre pas RVB (RGB english))
Chaque niveau (intensité) se fait sur 8 bits : 0 à 255
Le ruban comportant 32 leds, il faut repeter les commandes 32 fois ! pour le parcourir .
Pour eteindre le ruban ,il faut donc envoyer 32 fois, un START, et 24 bytes à Zero , et une FIN de commande.
Comme d'habitude , j'utilise l'UART (19200,8,n,1) + convertisseur TTL/USB , pour suivre l'évolution du programme sur un terminal PC .(Teraterm)
Le programme deploie 7 sequences differentes d'allumage du ruban ( Mode 0 à Mode 6)
voir Video
La liaison UART , sera plus tard , utiliseée pour choisir un mode d'allumage, et aussi les valeurs des 3 couleurs R,B,V ...

images/Proto_Ruban_32_Leds-Run1.jpg images/Proto_Ruban_32_Leds-Run2.jpg

On voit que mon alim 5V est insuffisante en puissance (bloc alim 9V USB 300mA en amont du regulateur),
car le voltage en amont baisse de 8,9V jusqu'à 4,9V !!! sur les phases de surintensité, mais cela ne perturbe pas (trop) le test
car le MCU reste alimenté en 5V via le Pickit2
A terme, il faudra evidement utiliser une alim plus costaude (capable de debiter au 1Amp)

images/Capture_Teraterm.jpg


Projet zippé: RBG_Strip_32_leds_SPI_Hardw_Test_180428.zip
main Source :
RBG_Strip_32_leds_SPI_Hardw_Test_180428.c
chargeur :
RGB_Strip_32leds_WS2801_Test_180428.hex

Video:
Ruban_32led_Test_180429.webm


 

paulfjujo@free.fr


../common/GIF/LTC1286p.jpg



Retour à l'index general