Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino photophore avec LED RGBW

Sujet résolu
28 avril 2020 à 11:43:35

Bonjour, j'ai pour projet de construire un photophore avec un arduio.

J'ai déjà fait la partie électronique. J'ai 9 leds RGBW de branchées en série avec un condensateur à la fin. (sur le schéma j'en ai fait que 3).

Le 1 et le 3 représente le +5V et le GND. Ainsi que le 2 qui sera brancher sur une PIN digital pour envoyer la DATA.

Mon problème se situe au niveau programmation, ou je ne trouve pas de code correspondant a ce que cherche. La plupart sont des codes sur les leds RGB et non pas RGBW.

Merci d'avance pour vos réponses.

  • Partager sur Facebook
  • Partager sur Twitter
28 avril 2020 à 11:58:25

Désolé, je viens de chercher mais rien trouvé sur ce type de leds. Juste par curiosité, on peut déterminer une couleur avec un seul pin !?

Cordialement

Alexandre

  • Partager sur Facebook
  • Partager sur Twitter
28 avril 2020 à 12:14:44

Alors sur les leds sont probablement des SK6812.

J'en ai trouver sur aliexpress si ça peut vous aidés :lol:

> Juste par curiosité, on peut déterminer une couleur avec un seul pin !?

Alors oui c'est possible de définir une couleur avec un seul pin puisse que y'a qu'un pin de DATA sur la led.

  • Partager sur Facebook
  • Partager sur Twitter
28 avril 2020 à 12:18:23

Ok merci pour l'info :)

Et désolé de ne pas pouvoir t'aider :'(

Cordialement

Alexandre

  • Partager sur Facebook
  • Partager sur Twitter
28 avril 2020 à 17:57:35

Salut,

En effet, ce sont probablement des super led SK6812RGBW (qui existe également en version RGB tout court). On peut choisir l'intensité des 4 canaux (R, G, B et W) indépendamment via le pin data, en envoyant N fois 32 bits de données (8 bits par canal), avec N le nombre de led en série. Vu qu'il y a juste une pin de data, il y a des timing très précis à respecter pour représenter un 1 ou un 0 : page 5 de la datasheet (https://cdn-shop.adafruit.com/product-files/2757/p2757_SK6812RGBW_REV01.pdf).

A priori la lib adafruit neopixel sait faire : https://github.com/adafruit/Adafruit_NeoPixel/blob/master/examples/RGBWstrandtest/RGBWstrandtest.ino

-
Edité par Arkturus 28 avril 2020 à 17:58:33

  • Partager sur Facebook
  • Partager sur Twitter
29 avril 2020 à 11:50:39

Salut,

Merci beacoup pour ta réponse Arkturus, j'ai utiliser cette librairie et ça marche.

Voici un exemple de code pour les personnes curieuses

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN        6
#define NUMPIXELS  9

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRBW);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 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)

#define DELAYVAL 50

void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  
  // Initie les leds
  pixels.begin();

  // Reset les leds
  pixels.clear();
  pixels.show();

  // Affiche une couleur
  for (int i = 0; i < NUMPIXELS; i++) {
    pixels.setPixelColor(i, 255, 0, 0, 10);
  }
}



  • Partager sur Facebook
  • Partager sur Twitter
30 avril 2020 à 21:19:32

Pour répondre "comment on règle la couleur avec un seul fil" : tu envoies simplement les données les unes après les autres, en série.

Chaque LED est associé avec une petite puce de communication. Tu envoies une série de 0 et 1 pour représenter justement le RGB ou RGBW. Les puces sont en série et chaque sortie d'une puce et reliée à la sortie de la puce suivante : principe de la daisy-chain.

Tu as 10 LED : tu envoies donc 10 paquets RGBW. La première puce reçoit un paquet. La lis, la stocke. Au deuxième paquet, elle envoie le premier paquet à la puce suivante et garde le nouveau paquet. et ainsi de suite. 

  • Partager sur Facebook
  • Partager sur Twitter