Autor Tema: Otra de led´s.  (Leído 22960 veces)

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

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Otra de led´s.
« en: 03 de Junio de 2007, 20:40:46 »
Hola colegas!

Hacía tiempo que tenía ganas de hacer alguna tontería como esta y... este finde me he animado  :D

Foto del bicho:



Seguro que ya os imaginais lo que hace  :mrgreen:

Instrucciones de uso:

1-Metes el dedito en la anillita (aunque cada cual es libre de meter lo que quiera  :D)
2-Le das vueltas a una velocidad moderada
3-Cuando la gente lo ve y dice "Anda! que chulo! como lo haces?" les das un par de minutos de explicación jeje.

Aquí va un video.

http://rapidshare.com/files/35098978/PICT0027.MOV.html

Mañana lo pondré en el youtube, en cualquier caso, para los que no podais ver los archivos *.MOV os podeis bajar este software gratuito:

http://quicktime.softonic.com/

Youtube:


Y este es el programa (me ha resultado imposible hacerlo más simple para que nadie se lie):

Código: [Seleccionar]
//************************************************************
//
//                 LED´S GIRATORIOS MAREADOS ;)
//                  Azicuetano (foro Todopic)
//
//************************************************************

#include <18F2550.h>

#fuses XTPLL,PROTECT,NOLVP,PLL1,CPUDIV3,PUT,NOBROWNOUT,NOMCLR
#use delay(clock=12000000)

//#use fast_io(C)
//#use fast_io(B)

void enciende(int);
void letra_I(void);
void letra_V(void);
void letra_A(void);
void letra_N(void);

void enciende(int leds_a_encender)
{
   output_b(leds_a_encender);
}

void letra_I(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b11111111);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
}

void letra_V(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b0000001);
   delay_ms(5);
   enciende(0b0001111);
   delay_ms(5);
   enciende(0b1110001);
   delay_ms(5);
   enciende(0b1000000);
   delay_ms(5);
   enciende(0b0111001);
   delay_ms(5);
   enciende(0b0000111);
   delay_ms(5);
   enciende(0b0000001);
   delay_ms(5);
}

void letra_A(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b10000000);
   delay_ms(5);
   enciende(0b11000000);
   delay_ms(5);
   enciende(0b10111101);
   delay_ms(5);
   enciende(0b00100011);
   delay_ms(5);
   enciende(0b10111100);
   delay_ms(5);
   enciende(0b11000000);
   delay_ms(5);
   enciende(0b10000000);
   delay_ms(5);
}

void letra_N(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b11111111);
   delay_ms(5);
   enciende(0b10000111);
   delay_ms(5);
   enciende(0b00011000);
   delay_ms(5);
   enciende(0b11100001);
   delay_ms(5);
   enciende(0b11111111);
   delay_ms(5);
   enciende(0b00000001);
   delay_ms(5);
}

void letra_T(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b11000000);
   delay_ms(5);
   enciende(0b10000000);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b11111111);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000000);
   delay_ms(5);
   enciende(0b11000000);
   delay_ms(5);
}

void letra_O(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b01111110);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b01111110);
   delay_ms(5);
}

void letra_D(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b11111111);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b01111110);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
}

void letra_P(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b11111111);
   delay_ms(5);
   enciende(0b10010001);
   delay_ms(5);
   enciende(0b00010001);
   delay_ms(5);
   enciende(0b00010001);
   delay_ms(5);
   enciende(0b00001110);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
}

void letra_C(void)
{
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
   enciende(0b01111110);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b10000001);
   delay_ms(5);
   enciende(0b01000010);
   delay_ms(5);
   enciende(0b00000000);
   delay_ms(5);
}

void main(void)
{
   set_tris_b(0b00000000);
   set_tris_c(0b00000000);
   set_tris_a(0b00000000);

   port_b_pullups(FALSE);

   output_high(PIN_B0);
   output_high(PIN_C7);
   delay_ms(500);

//************************************************************
//
//    EXPLICACION
//
//    Cada letra ocupa un tiempo de 40ms.
//    En 200ms. haciendo girar el llavero a una velocidad
//    normal, se repetirá 2 veces la palabra que pongamos.
//
//
//************************************************************

   while(1)
   {
      letra_I();
      letra_V();
      letra_A();
      letra_N();
     
//      letra_T();
//      letra_D();
//      letra_P();
//      letra_I();
//      letra_C();
     
      output_low(PIN_B0);
      output_low(PIN_B1);
      output_low(PIN_B2);
      output_low(PIN_B3);
      output_low(PIN_B4);
      output_low(PIN_B5);
      output_low(PIN_B6);
      output_low(PIN_B7);
      output_low(PIN_C7);

      delay_ms(40);             // retardo necesario para completar los 200ms.
                                // 40ms*4 letras + 40 ms = 200 ms.

   }
}

Bueno chicos, a ver si alguien se anima, en cuanto yo haga mi versión smd ya os mostraré como se me ha quedado.

PD: De darle vueltas al cacharro tengo el dedo índice hecho polvo. Las últimas pruebas las he tenido que hacer con un guante  :D :D :D


Un saludo desde Alicante.
« Última modificación: 19 de Octubre de 2007, 04:06:52 por Azicuetano »

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Otra de led´s.
« Respuesta #1 en: 03 de Junio de 2007, 20:48:26 »
jejejejej enhorabuena! te ha kedado de lujo! yo también ando detrás de un trasto de estos desde hace tiempo, a ver si este verano entre cañita y cañita me hago uno! q la verdad lo has dejado muy asequible!! :D:D

saludos!

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Otra de led´s.
« Respuesta #2 en: 03 de Junio de 2007, 20:55:16 »
Muy bien! Te felicito! Ya veré si tengo un tiempito y hago algo de esto! es muy interesante, más aún si lo complejizas hasta lograr esas cosas tan fabulosas como generar imágenes en las llantas de los autos.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado LABmouse

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Otra de led´s.
« Respuesta #3 en: 03 de Junio de 2007, 21:24:12 »
Felicidades Azicuetano!!!

Desconectado jfh900

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Otra de led´s.
« Respuesta #4 en: 03 de Junio de 2007, 21:39:32 »
Muy buen trabajo, nada mas simple y al mismo tiempo espectacular. Solo me gustaria preguntarte algunas cosas:

1º) ¿nos dejarias el esquema de montaje del circuito?, mas que nada por no tener que hacer ingenieria inversa sobre el programa para ver donde estan conectados los led.  :-)

2º) ¿Utilizaste por alguna razón en especial el 18F2550?, ¿conectaste el USB algún sitio desconocido?  :D

3º) ¿Cuantas veces se te ha escapado el cacharro probandolo?  :mrgreen:

Un saludo y de nuevo enhorabuena por encontrar una solución tan simple.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado electrotacto

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 560
Re: Otra de led´s.
« Respuesta #5 en: 03 de Junio de 2007, 23:27:06 »
que bonito yo quiero hacer uno pa miiiiiiiiiiiiiiiii, pero que diga HOLA MAMASITA jejejejejejeje
No es lo mismo un metro de encage negro a que un negro te encage un metro

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Otra de led´s.
« Respuesta #6 en: 04 de Junio de 2007, 01:18:53 »
Ayer mismo estuvimos el amigo Nocturno y yo hablando de esto mismo y de las ganas que teníamos de hacerlo. Te ha quedado perfecto Ivan.  :mrgreen:

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Otra de led´s.
« Respuesta #7 en: 04 de Junio de 2007, 01:46:05 »
Pues sí, felicidades. Siempre he tenido en mente hacerlo pero jamás se me habría ocurrido tan simple.
¿No llevan resistencias esos leds?

Desconectado santipic_9

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 36
Re: Otra de led´s.
« Respuesta #8 en: 04 de Junio de 2007, 18:37:51 »
enhorabuena  por este montaje Azicuetano, es de película, algún día me gustaría hacerlo y montarlo en la rueda de la moto quedaría " de película". Chao , gracias por compartirlo.

Desconectado jfh900

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Otra de led´s.
« Respuesta #9 en: 04 de Junio de 2007, 19:15:46 »
Hola Azicuetano, me he permitido una pequeña licencia para "compactar" el código y reducir el número de líneas:

Código: C
  1. //************************************************************
  2. //
  3. //                 LED´S GIRATORIOS MAREADOS ;)
  4. //                  Azicuetano (foro Todopic)
  5. //
  6. //************************************************************
  7.  
  8. #include <18F2550.h>
  9.  
  10. #fuses XTPLL,PROTECT,NOLVP,PLL1,CPUDIV3,PUT,NOBROWNOUT,NOMCLR
  11. #use delay(clock=12000000)
  12.  
  13. #define delay_led 5
  14. #define enciende(leds_a_encender) {output_b(leds_a_encender); delay_ms(delay_led);}
  15.  
  16. #define TODOPIC
  17.  
  18. //#use fast_io(C)
  19. //#use fast_io(B)
  20.  
  21. //void enciende(int);
  22. void letra_I(void);
  23. void letra_V(void);
  24. void letra_A(void);
  25. void letra_N(void);
  26.  
  27. /*
  28. void enciende(int leds_a_encender)
  29. {
  30.    output_b(leds_a_encender);
  31. }
  32. */
  33.  
  34. void letra_I(void)
  35. {
  36.    enciende(0b00000000);
  37.    enciende(0b00000000);
  38.    enciende(0b10000001);
  39.    enciende(0b10000001);
  40.    enciende(0b11111111);
  41.    enciende(0b10000001);
  42.    enciende(0b10000001);
  43.    enciende(0b00000000);
  44. }
  45.  
  46. void letra_V(void)
  47. {
  48.    enciende(0b00000000);
  49.    enciende(0b0000001);
  50.    enciende(0b0001111);
  51.    enciende(0b1110001);
  52.    enciende(0b1000000);
  53.    enciende(0b0111001);
  54.    enciende(0b0000111);
  55.    enciende(0b0000001);
  56. }
  57.  
  58. void letra_A(void)
  59. {
  60.    enciende(0b00000000);
  61.    enciende(0b10000000);
  62.    enciende(0b11000000);
  63.    enciende(0b10111101);
  64.    enciende(0b00100011);
  65.    enciende(0b10111100);
  66.    enciende(0b11000000);
  67.    enciende(0b10000000);
  68. }
  69.  
  70. void letra_N(void)
  71. {
  72.    enciende(0b00000000);
  73.    enciende(0b10000001);
  74.    enciende(0b11111111);
  75.    enciende(0b10000111);
  76.    enciende(0b00011000);
  77.    enciende(0b11100001);
  78.    enciende(0b11111111);
  79.    enciende(0b00000001);
  80. }
  81.  
  82. void letra_T(void)
  83. {
  84.    enciende(0b00000000);
  85.    enciende(0b11000000);
  86.    enciende(0b10000000);
  87.    enciende(0b10000001);
  88.    enciende(0b11111111);
  89.    enciende(0b10000001);
  90.    enciende(0b10000000);
  91.    enciende(0b11000000);
  92. }
  93.  
  94. void letra_O(void)
  95. {
  96.    enciende(0b00000000);
  97.    enciende(0b00000000);
  98.    enciende(0b01111110);
  99.    enciende(0b10000001);
  100.    enciende(0b10000001);
  101.    enciende(0b10000001);
  102.    enciende(0b10000001);
  103.    enciende(0b01111110);
  104. }
  105.  
  106. void letra_D(void)
  107. {
  108.    enciende(0b00000000);
  109.    enciende(0b10000001);
  110.    enciende(0b11111111);
  111.    enciende(0b10000001);
  112.    enciende(0b10000001);
  113.    enciende(0b10000001);
  114.    enciende(0b01111110);
  115.    enciende(0b00000000);
  116. }
  117.  
  118. void letra_P(void)
  119. {
  120.    enciende(0b00000000);
  121.    enciende(0b10000001);
  122.    enciende(0b11111111);
  123.    enciende(0b10010001);
  124.    enciende(0b00010001);
  125.    enciende(0b00010001);
  126.    enciende(0b00001110);
  127.    enciende(0b00000000);
  128. }
  129.  
  130. void letra_C(void)
  131. {
  132.    enciende(0b00000000);
  133.    enciende(0b00000000);
  134.    enciende(0b01111110);
  135.    enciende(0b10000001);
  136.    enciende(0b10000001);
  137.    enciende(0b10000001);
  138.    enciende(0b01000010);
  139.    enciende(0b00000000);
  140. }
  141.  
  142. void main(void)
  143. {
  144.    set_tris_b(0b00000000);
  145.    set_tris_c(0b00000000);
  146.    set_tris_a(0b00000000);
  147.  
  148.    port_b_pullups(FALSE);
  149.  
  150.    output_high(PIN_B0);
  151.    output_high(PIN_C7);
  152.    delay_ms(500);
  153.  
  154. //************************************************************
  155. //
  156. //    EXPLICACION
  157. //
  158. //    Cada letra ocupa un tiempo de 40ms.
  159. //    En 200ms. haciendo girar el llavero a una velocidad
  160. //    normal, se repetirá 2 veces la palabra que pongamos.
  161. //
  162. //
  163. //************************************************************
  164.  
  165.    while(1)
  166.    {
  167.  
  168. #ifdef TODOPIC
  169.       letra_T();
  170.       letra_D();
  171.       letra_P();
  172.       letra_I();
  173.       letra_C();
  174. #else      
  175.       letra_I();
  176.       letra_V();
  177.       letra_A();
  178.       letra_N();
  179. #endif
  180.  
  181.       output_low(PIN_B0);
  182.       output_low(PIN_B1);
  183.       output_low(PIN_B2);
  184.       output_low(PIN_B3);
  185.       output_low(PIN_B4);
  186.       output_low(PIN_B5);
  187.       output_low(PIN_B6);
  188.       output_low(PIN_B7);
  189.       output_low(PIN_C7);
  190.  
  191.       delay_ms(40);             // retardo necesario para completar los 200ms.
  192.                                 // 40ms*4 letras + 40 ms = 200 ms.
  193.  
  194.    }
  195. }

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Otra de led´s.
« Respuesta #10 en: 04 de Junio de 2007, 19:16:16 »
Hola colegas!!

Ufff... hoy no he podido nirespirar! En el curro he podido escribir esta mañana para responder una duda de un compañero forero y hasta este mismo instante (23:51 en España) no he parado (tenía ganas de responder las dudas planteadas  :D :D)

Citar
a ver si este verano entre cañita y cañita me hago uno

Ten cuidao J1M, que como te lo empiecen a pillar los colegas con unas cuantas birras de más acaba en cuenca el bicho  :D

Citar
1º) ¿nos dejarias el esquema de montaje del circuito?

No tengo el esquema hecho (lo hice a pelo) pero, mañana en un rato lo hago.

Citar
2º) ¿Utilizaste por alguna razón en especial el 18F2550?, ¿conectaste el USB algún sitio desconocido?  

Hace un tiempo de dió por jugar con el USB (aprobecho para agradecer a J1M su maravilloso aporte al foro). Entonces... en un ataque de ansia me puse a pedir samples como un loco del PIC18F2550, PIC18F4550, PIC18F2455 y el PIC18F4455. Los pedía desde mi trabajo, desde la empresa de mi hermano, y las de otros dos amigos  :D  tengo una bolsa llena!  :D :D

Citar
3º) ¿Cuantas veces se te ha escapado el cacharro probandolo?  

Jeje... Sólo una  :mrgreen:. Se lo iba a enseñar a mi cuñao (cuando no estaba acabado) y salió volando. Trastazo contra el techo y contra el suelo (pero sobrevivió como un campeón). Hoy se lo he vuelto a enseñar y el cabroncete se ha escondido y sólo asomaba la cabeza jeje.

Citar
¿No llevan resistencias esos leds?

Mi cutraza me avergüenza Manolo, están soldados por la otra cara, pero, se ha quedado tan fea que no le he hecho ni una foto  :D

Bueno gente, gracias por las felicitaciones. A ver que nueva idiotez se me ocurre ahora  :D :D


Un saludo desde Alicante.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Otra de led´s.
« Respuesta #11 en: 04 de Junio de 2007, 19:21:06 »
Jeje...

jfh900 así se queda mucho más profesional  :mrgreen:

Seguro que más de uno ha aprendido algo sobre compactación de código (yo el primero  :D)


Un saludo desde Alicante.

Desconectado vicent

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 144
    • Web de Vicent
Re: Otra de led´s.
« Respuesta #12 en: 04 de Junio de 2007, 21:14:56 »
Iván, me encanta este proyectillo, es una pasada. Como algo tan simple hace algo tan vistoso.

Cuando tenga un rato (y pongas el esquema,  :P) lo haré, voy a dejar a la peña to rallá, jajaajja.

Un saludo. Au.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Otra de led´s.
« Respuesta #13 en: 09 de Junio de 2007, 21:26:57 »
Lo siento, he pecado, acabo de comprar una 'macarrada' (lease: modding para PC) ... pero no he podido evitarlo!

El culpable es este trasto:



Por 15€ hace esto:

La cosa es que me intriga muchiiiisimo el como lo han adaptado a un ventilador, es decir, como alimentan la placa del microcontrolador, si es por inducción o por cable o que se yo... y como era taaaan barato y tenía taaantas ganas de hacer algo similar... pues va a ser mi conejillo de indias! XDDD

También tengo en camino desde China esto:
http://cgi.ebay.com/50X-New-5mm-4-Pin-RGB-Common-Cathode-LED-8-000mcd-F-R_W0QQitemZ250122856641QQihZ015QQ

Unos poquitos para hacer dibujos en el aire! y otros tantos para hacer pruebas de 'Ambilight'... a ver si me sale tan bien como a los de Philips! XDDD

Desconectado LABmouse

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Otra de led´s.
« Respuesta #14 en: 09 de Junio de 2007, 21:42:01 »
Funcionamiento, espectacular!!!!   :shock:

La idea es perfecta del circuito impreso y la forma que tiene!!!!  :P

Le puedes quitar la pasta transparente y tomarle una foto de frente al PCB? :mrgreen: Es por el bien de la humanidad.  Por favor! :P


« Última modificación: 09 de Junio de 2007, 21:44:57 por PICmouse »


 

anything