Autor Tema: Libreria CCS para controlar LEDs WS2811/WS2812  (Leído 39139 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #45 en: 28 de Febrero de 2015, 14:05:35 »
Sisi, no digo que use el modulo PWM, sino que genera un PWM por bitbanging, pero aprovecha las tiempos no tan estrictos para exprimirle velocidad.
Y no digo que sea mejor opcion que el SPI de Migsantiago, sino que probablemente (no lo probe) consiga mayor velocidad de envio que la libreria que colgue al principio, y esto se puede traducir en mas FPS.... quizas... o quizas no.... hay que probar.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re: Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #47 en: 16 de Junio de 2015, 23:59:58 »
Hay tengo los 5M de leds son 300 con un atmega8 funciona bien a 8MHz. A $28 los 300 leds y con silicon tube estén al tanto de la tienda de link que puse porque uno de estos días pone otra oferta.

Desconectado jhoncarlos

  • PIC10
  • *
  • Mensajes: 1
Re: Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #48 en: 29 de Junio de 2015, 14:20:50 »
hola!! como puedo trabajarlo en un pic16f88?

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #49 en: 06 de Noviembre de 2015, 13:49:33 »
Para este dia 11 del 11 la tira de 5 Metros de 300 leds ws2812b costara $25.92 como tubo de silicona, y hay descuentros extras asi que sale menos. Misma tienda de mi comentario anterior.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #50 en: 09 de Noviembre de 2015, 13:13:51 »
5 metros, de 60 leds por metro a 25 USD es muy buena oferta!
Aunque estoy mirando y no veo que diga que vaya a costar eso.... mirare el 11/11 a ver...
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado parametro51

  • PIC10
  • *
  • Mensajes: 10
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #51 en: 14 de Febrero de 2016, 19:06:37 »
 :-/ Gracias por el link de la tienda  :-/ He hecho el pedido porque es donde más baratos los he encontrado y sigo muy de cerca este tema. Porque quiero hacer un proyecto interesante en una casa nueva que me ha comprado el banco (aun es suya, hasta que pague la hipoteca  :D ). Asi que os lloveré a preguntas porque estoy muy verde yo en esto, solo una preguntita para abrir boca, que os parece un 18f2550 a 20mhz y 2 tiras de 5m a 30leds/metro. ¿con esto me llega?, según la flash del micro si, pero ya eso de los tiempos me coge muy de sopetón. :lol:

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #52 en: 14 de Febrero de 2016, 19:41:14 »
El 18F2550 tiene PLL lo cual lo podrias hacer trabajar a 48Mhz, te dan los tiempos. Cada instruccion a 48Mhz son 83ns

Lo que si depende de que tan rapido quieras actualizar todos los leds... si son 2 tiras de 5m como decis entonces son 3600bits (por tira) con una media de 1.2us (aunque  hay un +- 600ns) cada bit, son 4.32ms para ( 230Hz  sin contar el tiempo de reset) actualizar toda la tira.
Si dividis esas tiras en mas partes podes usar mas pines. es decir suponete que ahora dividis las 2 tiras en 4 de 2.5m cada una. tendrias 1800 bits, lo cual te deja que se actualiza cada 2.16ms cada tira. Y los podes actualizar todos juntos si es que la libreria lo hace.

« Última modificación: 14 de Febrero de 2016, 20:06:58 por KILLERJC »

Desconectado Axel

  • PIC10
  • *
  • Mensajes: 10
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #53 en: 01 de Diciembre de 2016, 04:17:01 »
Hola Marttyn, ¿crees que sea muy difícil adaptar la librería a un pic18f25k50 trabajando a 48Mhz (12 MIPS)? necesito trabajar a 48Mhz para poder usar el módulo USB, estoy usando una placa llamada Pololu P-Star.
saludos. :)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #54 en: 01 de Diciembre de 2016, 07:07:28 »
Hola Marttyn, ¿crees que sea muy difícil adaptar la librería a un pic18f25k50 trabajando a 48Mhz (12 MIPS)? necesito trabajar a 48Mhz para poder usar el módulo USB, estoy usando una placa llamada Pololu P-Star.
saludos. :)

Leyendo el codigo:

 //necesitamos que el PIC corra a 32MHZ al menos

Es decir 32Mhz o mas

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #55 en: 01 de Diciembre de 2016, 10:07:49 »
Para usarlo a 48Mhz deberias modificar el envio de datos adecuando a la velocidad de tu micro.
Antes que nada, prueba sin hacer modificaciones. Si no me equivoco el LED detecta "porcentajes" de H/L y no tiempos. Asi que si corres a 48Mhz la trama se enviara mas rapido, pero los porcentajes de H/L seran los mismos.
Sino puedes tratar de modificar la libreria para que se adapte a tu velocidad, comparte si lo consigues para que tengamos una libreria mejor :)
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Axel

  • PIC10
  • *
  • Mensajes: 10
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #56 en: 02 de Diciembre de 2016, 01:56:23 »
Hola Marttyn, ¿crees que sea muy difícil adaptar la librería a un pic18f25k50 trabajando a 48Mhz (12 MIPS)? necesito trabajar a 48Mhz para poder usar el módulo USB, estoy usando una placa llamada Pololu P-Star.
saludos. :)

Leyendo el codigo:

 //necesitamos que el PIC corra a 32MHZ al menos

Es decir 32Mhz o mas

Que tal, en la librería esta la siguiente porción de código:
Código: C
  1. #IF getenv("CLOCK") != 32000000
  2.         //Necesitamos que el PIC corra a 32MHZ
  3.         #ERROR La velocidad del PIC debe ser de 32Mhz
  4. #ENDIF

esto quiere decir que el pic debe estar fijo a 32 Mhz, y no "32 Mhz o más" :)

Para usarlo a 48Mhz deberias modificar el envio de datos adecuando a la velocidad de tu micro.
Antes que nada, prueba sin hacer modificaciones. Si no me equivoco el LED detecta "porcentajes" de H/L y no tiempos. Asi que si corres a 48Mhz la trama se enviara mas rapido, pero los porcentajes de H/L seran los mismos.
Sino puedes tratar de modificar la libreria para que se adapte a tu velocidad, comparte si lo consigues para que tengamos una libreria mejor :)

voy a probarla de esa manera a ver que tal y les cuento.

saludos.
« Última modificación: 02 de Diciembre de 2016, 02:25:14 por Axel »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #57 en: 02 de Diciembre de 2016, 14:31:11 »
esto quiere decir que el pic debe estar fijo a 32 Mhz, y no "32 Mhz o más" :)

Lei la primera pagina, donde estaba el codigo, seguro que luego en el link para bajarlo ya dice solamente de 32Mhz, pero en la primer pagina el comentario decia tal y cual lo copie.
Por eso la confusion.

Aunque sabia que habia una nueva version, crei que no iba a cambiar eso.

Desconectado Axel

  • PIC10
  • *
  • Mensajes: 10
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #58 en: 02 de Diciembre de 2016, 19:01:07 »
esto quiere decir que el pic debe estar fijo a 32 Mhz, y no "32 Mhz o más" :)

Lei la primera pagina, donde estaba el codigo, seguro que luego en el link para bajarlo ya dice solamente de 32Mhz, pero en la primer pagina el comentario decia tal y cual lo copie.
Por eso la confusion.

Aunque sabia que habia una nueva version, crei que no iba a cambiar eso.

si acabo de darme cuenta que en la versión 1 tiene esa leyenda jeje.

tengo un problema, todabía no lo pruebo a 48Mhz, por el momento estoy usando un pic a 32Mhz; pero la función "SetBrightness" mantiene los leds en OFF con valores de 0 a 254, pero con el valor de 255 funciona bien como si no usara la función SetBrightness (brillo por default) ¿estaré haciendo algo mal? les dejo mi código: (linea 29 SetBrightness )

Código: C
  1. #include "HEADER_4620.h" //32Mhz
  2. #use fast_io(a)               //se accede al puerto a como memoria
  3. #byte PORTD     = getenv("SFR:PORTD")
  4. #define TRIS_D  0b11111110      //define cuales son entradas y cuales salidas
  5. #bit PIX_PIN        = PORTD.0
  6. #define NUM_LEDS        8
  7. #include "LED_Pixels_v0.2.c"
  8.  
  9. void Rainbow(int wait);
  10. int32 Wheel(int WheelPos);
  11.  
  12. void main(void) {
  13.         set_tris_d(TRIS_D);
  14.         output_d(0);
  15.         InitPixels();
  16.         while(1)
  17.       {
  18.         Rainbow(150);
  19.        }
  20. }
  21.  
  22. void Rainbow(int wait){
  23.         long i, j;
  24.  
  25.         for(j=0; j<256; j++){
  26.                 for(i=0; i<NUM_LEDS; i++){
  27.                         SetPixelColor(i, Wheel((i+j) & 255));
  28.                 }
  29.                 SetBrightness(255); //con valor de 0 hasta 254 no enciende el led, con 255 si enciende.
  30.                 ShowPixels();
  31.                 delay_ms(wait);
  32.         }
  33. }
  34.  
  35. int32 Wheel(int WheelPos) {
  36. // Input a value 0 to 255 to get a color value.
  37. // The colours are a transition r - g - b - back to r.
  38.  
  39.         if(WheelPos < 85){
  40.                 return Color32(WheelPos * 3, 255 - WheelPos * 3, 0);
  41.         }else if(WheelPos < 170){
  42.         WheelPos -= 85;
  43.                 return Color32(255 - WheelPos * 3, 0, WheelPos * 3);
  44.         }else{
  45.         WheelPos -= 170;
  46.                 return Color32(0, WheelPos * 3, 255 - WheelPos * 3);
  47.         }
  48. }

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re:Libreria CCS para controlar LEDs WS2811/WS2812
« Respuesta #59 en: 03 de Diciembre de 2016, 06:34:53 »
Creo recordar que funcionaba bien.
Ahora no puedo hacer pruebas, pero si encuentras algun error en el codigo avisa para modificarlo.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.


 

anything