Luces efecto "auto increible" con PIC

Hola que tal,
Bueno esta vez escribo no para preguntar sino para hacer un aporte, y ese aporte es el que describe el titulo.
Este es el primer proyecto en el que uso un microcontrolador, para ser especificos el pic 16F628A. Basicamente el pic controla directamente los 13 leds rojos ultrabrillantes y 3 botonones para hacer ajustes menores sin tener que reprogramar el PIC.
Ademas cuenta con un regulador de voltaje integrado en la tarjeta y el PIC esta programado para recuperar el ultimo tiempo y secuencia seleccionados (se almacenan en la EEPROM).

Uso de los botones:
TS : permite escoger entre las 14 secuencias disponibles.
-R : permite reducir la velocidad con la que cambian los leds.
+R : permite aumentar la velocidad con la que cambian los leds.

-R y + R : si se presionan al mismo tiempo reinician el tiempo predeterminado (70ms)
TS y -R : si se presionan al mismo tiempo reinician el tiempo y la secuencia predeterminados, tambien puede usarse para reparar el sistema en caso de un error en la seleccion de secuencia. (mas adelante actualizare el codigo para corregirlo)

Aqui un video demostrando su funcionamiento:

Ademas esta misma placa puede ser usada como un letrero POV.

Si nesesitan mas informacion o tienen alguna duda no duden en preguntar.
Por cierto proximante actualizare el programa para agregar mas secuencias.

PD: adjunto el circuito en proteus, el .hex y la plantilla de la placa con mi logo. (jeje:cool:)
 

Adjuntos

  • Foros de Electronica.rar
    80.2 KB · Visitas: 1,038
Última edición:
ehhhhh. gran aporte al foro... muchas gracias justiciero24..... es de justicia agradecerte el pedazo de aporte...

además te quedó muy bonito el circuito...
gracias...seguro que algún día lo monto..

saludos
rash
 
La verdad es que no he probado, pero algun dia lo intentare.
Por ahora estoy haciendo un reproductor de melodias para el automovil con un pic y un altavoz piezzoelectrico.
Aunque ya se me habia ocurrio la idea, pero usando leds RGB y segun la musica sea el color, intensidad y acomodo de los leds, pero aun es bastante complejo para mi.
 
Gracias amigo,
Mira para que puedan ver el proyecto en el que actualmente trabajo.
Este es mi PIC 16F628A tocando "Happy Birthay" (ideal para acompañar cajas de regalos)

Aqui les dejo el video:

http://www.youtube.com/watch?v=dFCTsKEb-AE&feature=youtu.be


Este es solo un prototipo a modo de demostracion. Pretendo usar un PIC de 8 pines con 3 botones , un buzzer y un led como indicadores y por supuesto una salida amplificada para conectar el altavoz.
 
Última edición:
Hola,
Yo otra vez aqui, les vengo a complementar la informacion del primer post.
Les agrego la lista de materiales, y unas imagenes de como van montados los componentes en el pcb.

Saludos,
Justiciero24
 

Adjuntos

  • Lista de materiales.txt
    364 bytes · Visitas: 586
  • PCB2.jpg
    PCB2.jpg
    126.3 KB · Visitas: 519
  • resised1.JPG
    resised1.JPG
    225.7 KB · Visitas: 408
  • resised2.JPG
    resised2.JPG
    176.1 KB · Visitas: 418
si eso lo note, pero me referia a todo tu programa
para poder hacerle algun ajuste o para poder cambiarle
de pic, ya que voy a hacer un proyecto de la escuela y me gustariale implementar parte del tuyo.
 
Lamento heberme tardado pero estuve en examenes:estudiando: y no tuve tiempo de responder, bueno cambiando el tema aqui les dejo el codigo en picbasic, no es lo maximo pero funciona, haber si un maestro de la programacion nos hecha la mano.

Saludos,

Código:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''Programa realizado por: Daniel Arturo Fernandez Raygoza''
''Luces auto increible2 con pic 16f628A, 13 leds y        ''
''3 botones                                              ''
''Version 3.2                                            ''
''11 de febrero de 2012                                  ''
''Todos los derechos reservados                          ''
''DAF-R enterprises                                      ''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

AllDigital
TRISA = %00111000
TRISB = %00000000

Dim intervalo As Byte
Dim suma As Byte
Dim secuencia As Byte
Dim ts As Byte
Dim rep As Byte

PORTA = %00000000
PORTB = %00000000

WaitMs 5
Read 1, secuencia
Read 0, suma
WaitMs 5

WaitMs 500

configuracion:
ts = secuencia + 1
If ts = 1 Then Goto inicio1
If ts = 2 Then Goto inicio2
If ts = 3 Then Goto inicio3
If ts = 4 Then Goto inicio4
If ts = 5 Then Goto inicio5
If ts = 6 Then Goto inicio6
If ts = 7 Then Goto inicio7
If ts = 8 Then Goto inicio8
If ts = 9 Then Goto inicio9
If ts = 10 Then Goto inicio10
If ts = 11 Then Goto inicio11
If ts = 12 Then Goto inicio12
If ts = 13 Then Goto inicio13
If ts = 14 Then Goto inicio14
If secuencia < 15 Then secuencia = 0
Gosub velocidad
Goto configuracion


inicio1:
PORTA = %00000000
PORTB = %00000001
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %00000000
PORTA = %11000011
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTA = %00000000
PORTB = %11110000
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Goto configuracion

inicio2:
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
Goto configuracion

inicio3:
PORTB = %10111111
PORTA = %11000111
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %10111111
PORTA = %11000111
Gosub velocidad
Goto configuracion

inicio4:
PORTB = %00111111
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %10000000
PORTA = %11000111
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio5:
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio6:
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %10111111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00001111
PORTA = %10000111
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio7:
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio8:
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
Goto configuracion

inicio9:
PORTB = %00000011
PORTA = %00000000
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00110111
Gosub velocidad
PORTB = %01101111
Gosub velocidad
PORTB = %11011011
Gosub velocidad
PORTB = %10110111
PORTA = %01000000
Gosub velocidad
PORTB = %01101111
PORTA = %11000000
Gosub velocidad
PORTB = %11011011
PORTA = %10000001
Gosub velocidad
PORTB = %10110111
PORTA = %01000011
Gosub velocidad
PORTB = %01101111
PORTA = %11000110
Gosub velocidad
PORTB = %11011011
PORTA = %10000101
Gosub velocidad
PORTB = %10110110
PORTA = %01000011
Gosub velocidad
PORTB = %10110000
PORTA = %01000011
Gosub velocidad
PORTB = %01100000
PORTA = %11000110
Gosub velocidad
PORTB = %10000000
PORTA = %01000011
Gosub velocidad
PORTB = %00000000
PORTA = %11000110
Gosub velocidad
PORTA = %10000101
Gosub velocidad
PORTA = %00000011
Gosub velocidad
PORTA = %00000110
Gosub velocidad  'comienza regreso
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %11000110
Gosub velocidad
PORTA = %01000111
PORTB = %10000000
Gosub velocidad
PORTA = %10000111
PORTB = %11000000
Gosub velocidad
PORTA = %11000110
PORTB = %01100000
Gosub velocidad
PORTA = %01000111
PORTB = %10110000
Gosub velocidad
PORTA = %10000111
PORTB = %11011000
Gosub velocidad
PORTA = %11000110
PORTB = %01101100
Gosub velocidad
PORTA = %01000111
PORTB = %10110110
Gosub velocidad
PORTA = %10000111
PORTB = %11011011
Gosub velocidad
PORTA = %11000110
PORTB = %01101101
Gosub velocidad
PORTA = %01000011
PORTB = %10110110
Gosub velocidad
PORTA = %10000001
PORTB = %11011011
Gosub velocidad
PORTA = %11000000
PORTB = %01101101
Gosub velocidad
PORTA = %01000000
PORTB = %10110110
Gosub velocidad
PORTA = %00000000
PORTB = %11011011
Gosub velocidad
PORTB = %01101101
Gosub velocidad
PORTB = %00110110
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00001101
Gosub velocidad
PORTB = %00000110
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Goto configuracion

inicio10:
PORTB = %01010101
PORTA = %01000101
Gosub velocidad
PORTB = %10101010
PORTA = %10111010
Gosub velocidad
Goto configuracion

inicio11:
PORTB = %00000001
PORTA = %00000000
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %11111111
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000111
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %00000000
PORTB = %11111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000001
Gosub velocidad
PORTB = %00000000
Gosub velocidad
Goto configuracion

inicio12:
PORTB = %00000001
PORTA = %00000000
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %11111111
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
Gosub velocidad
PORTB = %11111100
Gosub velocidad
PORTB = %11111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
Gosub velocidad
PORTB = %11000000
Gosub velocidad
PORTB = %10000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio13:
PORTB = %01111111
PORTA = %00000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000111
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000111
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio14:
For rep = 1 To 15
PORTA = %00000000
PORTB = %00000001
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %00000000
PORTA = %11000011
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTA = %00000000
PORTB = %11110000
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
Next rep


For rep = 1 To 15
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %10111111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00001111
PORTA = %10000111
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %00000011
PORTA = %00000000
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00110111
Gosub velocidad
PORTB = %01101111
Gosub velocidad
PORTB = %11011011
Gosub velocidad
PORTB = %10110111
PORTA = %01000000
Gosub velocidad
PORTB = %01101111
PORTA = %11000000
Gosub velocidad
PORTB = %11011011
PORTA = %10000001
Gosub velocidad
PORTB = %10110111
PORTA = %01000011
Gosub velocidad
PORTB = %01101111
PORTA = %11000110
Gosub velocidad
PORTB = %11011011
PORTA = %10000101
Gosub velocidad
PORTB = %10110110
PORTA = %01000011
Gosub velocidad
PORTB = %10110000
PORTA = %01000011
Gosub velocidad
PORTB = %01100000
PORTA = %11000110
Gosub velocidad
PORTB = %10000000
PORTA = %01000011
Gosub velocidad
PORTB = %00000000
PORTA = %11000110
Gosub velocidad
PORTA = %10000101
Gosub velocidad
PORTA = %00000011
Gosub velocidad
PORTA = %00000110
Gosub velocidad  'comienza regreso
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %11000110
Gosub velocidad
PORTA = %01000111
PORTB = %10000000
Gosub velocidad
PORTA = %10000111
PORTB = %11000000
Gosub velocidad
PORTA = %11000110
PORTB = %01100000
Gosub velocidad
PORTA = %01000111
PORTB = %10110000
Gosub velocidad
PORTA = %10000111
PORTB = %11011000
Gosub velocidad
PORTA = %11000110
PORTB = %01101100
Gosub velocidad
PORTA = %01000111
PORTB = %10110110
Gosub velocidad
PORTA = %10000111
PORTB = %11011011
Gosub velocidad
PORTA = %11000110
PORTB = %01101101
Gosub velocidad
PORTA = %01000011
PORTB = %10110110
Gosub velocidad
PORTA = %10000001
PORTB = %11011011
Gosub velocidad
PORTA = %11000000
PORTB = %01101101
Gosub velocidad
PORTA = %01000000
PORTB = %10110110
Gosub velocidad
PORTA = %00000000
PORTB = %11011011
Gosub velocidad
PORTB = %01101101
Gosub velocidad
PORTB = %00110110
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00001101
Gosub velocidad
PORTB = %00000110
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Next rep


For rep = 1 To 15
PORTB = %00000001
PORTA = %00000000
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %11111111
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
Gosub velocidad
PORTB = %11111100
Gosub velocidad
PORTB = %11111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
Gosub velocidad
PORTB = %11000000
Gosub velocidad
PORTB = %10000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000000
Gosub velocidad
Next rep

Goto configuracion

End                                               

velocidad:

If PORTA.5 = 1 Then
WaitMs 500
secuencia = secuencia + 1
Write 1, secuencia
Endif

If PORTA.3 = 1 Then
WaitMs 500
suma = suma - 5
Write 0, suma
Endif

If PORTA.4 = 1 Then
WaitMs 500
suma = suma + 5
Write 0, suma
Endif

If PORTA.3 = 1 And PORTA.4 = 1 Then
WaitMs 1500
PORTA = %11000111
PORTB = %11111111
suma = 0
Write 0, suma
WaitMs 500
Endif

If PORTA.5 = 1 And PORTA.4 = 1 Then
WaitMs 1500
PORTA = %11000111
PORTB = %11111111
secuencia = 0
suma = 0
Write 0, suma
Write 1, secuencia
WaitMs 500
Endif

intervalo = suma + 75

WaitMs intervalo
Return
 
Lo que tienes que hacer es inyectarle una señal PWM con diferente ciclo de trabajo para cada LED dependiendo de la intensidad deseada en ese momento.

Dependiendo de que lenguajes uses pueden existir funciones que te faciliten la tarea. Si lo quieres hacer todo tu investiga sobre como funciona una señal PWM (modulación por ancho de pulso).

Aquí te dejo un ejemplo hecho en pingüino ( http://wiki.pinguino.cc )

Código:
// Date: April 2012
// Author: aztk
//
// Servo 8

int i;
int j;

void setup()
{
     for(i=0; i<8; i++) servo.attach(i);
}
 
void loop()
{
     for(j=0; j<8; j++){
       servo.write(j, 250); //digitalWrite(j, HIGH);
       for(i=0; i<j; i++) servo.write(i, ((7-j)+i)*35.72);
       for(i=j+1; i<8; i++) servo.write(i, (7-(i-j))*35.72);
       delay(100);
     }
     for(j=7; j>-1; j--){
       servo.write(j, 250); //digitalWrite(j, HIGH);
       for(i=0; i<j; i++) servo.write(i, ((7-j)+i)*35.72);
       for(i=j+1; i<8; i++) servo.write(i, (7-(i-j))*35.72);
       delay(100);
     }
}

Nota: Aquí uso las funciones servo como un equivalente de una señal PWM, el código te puede servir para visualizar el algoritmo a programar.

Suerte!
 
Aca te paso lo que tengo. Por supuesto que el código se puede depurar y mejorarlo para adaptarlo a tus necesidades. Espero que te sirva. Un saludo
 

Adjuntos

  • auto_fantastico.rar
    23.2 KB · Visitas: 161
consulta podria poner en ves de led a la salida poner un par de focos para ser este tipo de juegos de luces desde ya muchas gracias ! (porsupuesto poniendo a la salida los respectivos moc ,2n22, y triac)
sludos atte PaTo
 
Por supuesto, no hay ningun problema, solo recuerda que no puedes exigirle mas de 25 ma al pic, aunque creo que nesesitaras rediseñar el PCB.
Si tienes alguna duda no dudes en preguntar. ( valga la redundancia)

Saludos,

PD: ya casi termino la version 4.0, espero postearla pronto.
 
hola justiciero, espero que estes amigo tu proyecto esta muy excelente lo felicito, tomando como base tu proyecto lo he querido implementar en una etapa de potencia usando moc y triac con 120 ac red local de colombia, pero hay un detalle que ha surgido, es tomando tu codigo en hex he grabado el pic usando pickit2 la programacion lo hace correctamente, pero cuando lo voy a colocar el pic en el circuito los leds no encienden, y para descartar que sea el programador o el pic, he colocado otro pic y otro programador y he vuelto a grabar y tambien arme el circuito en la proto y no hay respuesta del pic, acudo a ti para pedirte ayuda, tambien te adjunto el pcb que hice usando ares de proteus, espero tu colaboracion

gracias

jose
 

Adjuntos

  • LUCES CON PIC 16F628A.pdf
    233 KB · Visitas: 624
Amigo te respondo, yo hice el circuito que muy amablemente Justiciero nos paso en este post y si funciona perfectamente, tanto simulado en proteus, como armado en la realidad, pienso que talvez a la hora de programar el pic, usted no le esta indicando que debe de trabajar con el oscilador interno R/C, aparte de que tienes un error en tu PCB pq el + de los pulsadores lo estan tomando de la entrada del regulador y no de la salida de 5V, por lo que pudiste haber quemado el pic ya que despues del rectificador pueden haber 12 o 15V, espero haberte ayudado.....................
 
hola te comento, que ya lo hice funcionar, era una pista que estaba rota en la placa, si los `pulsadores estaban mal ubiocados, ya los arregle y ya el secuenciador esta funcionando perfecto, y adjunto de la pcb ya corregido.
gracias por la ayuda
 

Adjuntos

  • SECUENCIADOR CON PIC 16F628A.JPG
    SECUENCIADOR CON PIC 16F628A.JPG
    46.6 KB · Visitas: 323
Hola consulta a los que han realizado este circuito y por supuesto a Justiciero, resulta que hice el circuito y ha estuvo trabajando bien hasta que note que se apaga y no vueleve a trabajar, ahora cuando cargo el .hex al pic y pruebo funciona y hace las secuencias, luego automaticamente hace algunas secuencias y posteriormente se apaga o si lo apago a la hora de encenderlo lo trabaja, he cargado el .hex que nos facilito Justiciero y lo he probado varias veces, de antemano se agradece la ayuda.
 
Atrás
Arriba