Autor Tema: Secuencia de leds - Kitt!  (Leído 7516 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Secuencia de leds - Kitt!
« en: 23 de Mayo de 2004, 10:30:00 »
Pues ya he programado varios programitas en MPLAB, pero nunca había conectado mi PIC físicamente para probarlos, sólo los simulaba en MPLAB.

Escribí un programa que hace uso de la EEPROM del PIC16f84a para generar una secuencia de encendido de leds muy al estilo de Kitt el auto increíble (Knight Rider).

Ya lo pasé al PIC y conecté todo el circuito y pues la verdad me gustó como quedó. Sólo se necesita hacer la conexión fija del PIC y conseguir una barra de leds de 8 leds y sus resistencias.

Bueno, les paso el programa y si alguien lo arma y le gusta el circuito le recomiendo que le ponga una fase de potencia a las salidas y le ponga unos leds grandotes y lo acople a su automóvil jejeje. Giño

------------------
; Leyendo EEPROM genera salida en 8 leds como Kitt
LIST P=16f84a
include "p16f84a.inc"

porta EQU 0x05
portb EQU 0x06
status EQU 0x03
RP0 EQU 5
valor EQU 0x0c
PDel0 EQU 0x0d   ;subrutina
PDel1 EQU 0x0e   ;subrutina
CONFIG_ADDR EQU 0x0f   ;localidad eeprom

      ORG 0
      goto inicio
      ORG 5

;Establece terminales e/s
inicio   bsf status,RP0

      MOVLW 0x00 ;
      MOVWF 0x05 ; TRISA es de salida
      MOVLW 0x00
      MOVWF 0x06 ; TRISB es de salida

      bcf status,RP0

;Inicia programa
regre   movlw 0x17   ;carga w con 23decimal
      movwf CONFIG_ADDR
decre   BCF STATUS, RP0 ; Bank 0
      MOVF CONFIG_ADDR,0 ;
      MOVWF EEADR ; Address to read
      BSF STATUS, RP0 ; Bank 1
      BSF EECON1, RD ; carga EEDATA con lo que EEADDR tenga
      BCF STATUS, RP0 ; Bank 0
      MOVF EEDATA, W ; W = EEDATA
      movwf portb
      call DEMORA
      decfsz CONFIG_ADDR,1
      goto decre
      goto regre
      

;-------------------------------------------------------------
; Generado con PDEL ver SP  r 1.0  el 10/05/2004 Hs 07:54:14 p.m.
; Descripcion: Delay 125000 ciclos
;-------------------------------------------------------------
DEMORA  movlw     .124      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .251      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
;-------------------------------------------------------------
      end
---------------------------------------------------

La información que deben poner en la eeprom es:

--------------
0000: 00 00 00 00 00 00 00 00  ........
0008: 01 02 04 08 10 20 40 80  ..... @€
0010: 80 40 20 10 08 04 02 01  €@ .....
0018: FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿ
0020: FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿ
0028: FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿ
------------------

Ah! y si creen que el tiempo de encendido entre leds es poco o mucho, pueden usar el programa PDEL para modificar la subrutina.

También si llegan a necesitar el archivo HEX para grabar directamente su pic sin compilar lo anterior sólo avísenme y lo subo al foro. Sonrisa

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Secuencia de leds - Kitt!
« Respuesta #1 en: 23 de Mayo de 2004, 11:40:00 »
Hola pues si pudieses subir el archivo hex al foro te lo agradeceria mucho pk estoy iniciandome en esto de los pic y no se como compilarlo. SI no es pedir mucho podrias subir el esquema del circuito tambien??

Gracias de antemano, saludos

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Secuencia de leds - Kitt!
« Respuesta #2 en: 24 de Mayo de 2004, 21:55:00 »
Eso no es muy complicado piriots, te dire como lo hago yo, aunque creo que hay otros que lo hacen mas facil ...

Primero tienes que conseguirte el MPLAB,

Segundo abres el MPLAB y le das crear nuevo proyecto, asi como su respectivo nombre (tambien el directorio que vas a usar)

Tercero ... Escribes el programa en ASM (el de arriba) y lo guardas (con extension .asm). Tambien puedes escribir en block de notas el codigo asm y al final lo guardas con (.asm)

Ahora le das en Proyect - Edit proyect - Add nodes
Examinas, Seleccionas el archivo ASM y ya que aparece debajo del (proyecto.hex) solo resta dar OK y luego ...  Build All y LISTO, te aparece el .hex junto con otros archivos  

Desconectado Micom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 782
RE: Secuencia de leds - Kitt!
« Respuesta #3 en: 24 de Mayo de 2004, 23:54:00 »
Claro esta que para practicar la lectura y escritura de la eeprom esta bien ya que para obtener el mismo efecto en las luces se puede usar un codigo mas sencillo y que ocupa minimo espacio de memoria.    
El programador GTP USB PLUS es un super programador
GRACIAS dobles amigo SISPIC

Tan solo queda seguir sobreviviendo

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Secuencia de leds - Kitt!
« Respuesta #4 en: 25 de Mayo de 2004, 11:26:00 »
Ok lo voy a intentar, si me salen dudas o algo ya preguntare.

Gracias y salu2 a to2

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Secuencia de leds - Kitt!
« Respuesta #5 en: 30 de Mayo de 2004, 12:29:00 »
Bueno piriots ya subí el archivo. Incluye el código Assembler, el programa en archivo hex y un archivo hex que incluye el programa y al mismo tiempo la información que ha de grabarse en la eeprom.

Ah y le puse cristal de 4MHz por si alguien pregunta.

http://miarroba.com/foros/ver.php?foroid=256746&temaid=1866911

Y sobre el circuito, sólo consigue 8 leds (o una barra de leds para que se vea más bonito), 8 resistencias de 330ohms y conéctalos desde RB0 hasta RB7. Sobre la conexión de cristal y demás cosas checa la imagen:



Los RA0 a RA4 puedes dejarlos desconectados.


Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Secuencia de leds - Kitt!
« Respuesta #6 en: 02 de Junio de 2004, 15:24:00 »
Muchas gracias!!!!!!, dentro de una setmanica acabo los examenes y lo voy a montar a ver k tal keda.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Secuencia de leds - Kitt!
« Respuesta #7 en: 03 de Junio de 2004, 15:30:00 »
No hay problema.

Cuando lo armes, si es posible sácale una foto y súbela al foro para ver cómo queda.

Desconectado Micom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 782
RE: Secuencia de leds - Kitt!
« Respuesta #8 en: 04 de Junio de 2004, 00:34:00 »
Ya hase un año casi que modifique un programa que hace ese efecto secuencial de luces cuando lo encontr en la red hacia el efecto secuencial con 8 leds en portb pero practicando con el hice que lo hiciera con 12 leds y haciendole pequeñas modificaciones al circuito y al programa se puede implementar con los 13 leds. Si lo quieren busquenlo aqui
     http://miarroba.com/foros/ver.php?temaid=1016241&foroid=58549 si no tienen el proteus no importa ya que ahi tambien esta el hex y el asm. suerte
El programador GTP USB PLUS es un super programador
GRACIAS dobles amigo SISPIC

Tan solo queda seguir sobreviviendo

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Secuencia de leds - Kitt!
« Respuesta #9 en: 16 de Junio de 2004, 11:12:00 »
Es que soy mu novato y no entiendo mu bien el programa y no se si tengo k conectar el anodo o el catodo en el pic.

Si me puedes resolver la duda me haras un favor.

Salu2

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Secuencia de leds - Kitt!
« Respuesta #10 en: 17 de Junio de 2004, 11:25:00 »
Ah pues es fácil...

El ánodo (+) del led va a la terminal (RB) del PIC, el cátodo (-) del led va a una resistencia de 330ohms y la otra terminal de la resistencia va a tierra.

Tienes que hacer esto para cada led y conectarlo en orden: RB0 a RB7.

Checa la patita RB3 de la imagen, así es cómo debes conectar todos los 8 leds:


Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Secuencia de leds - Kitt!
« Respuesta #11 en: 17 de Junio de 2004, 11:58:00 »
Entendido, haber si los de la tiende d electronica me traen el programador y lo armo, me an dicho k dentro de 15 dias lo tendran....paciencia.

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Secuencia de leds - Kitt!
« Respuesta #12 en: 19 de Junio de 2004, 13:56:00 »
Si conecto 2 led en paralelo a cada una de las patillas de RB para hacer dos hileras de 8 led rularia bien??

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Secuencia de leds - Kitt!
« Respuesta #13 en: 19 de Junio de 2004, 21:32:00 »
Claro.

Y si necesitaras más de 2 leds, pues sólo agrégale una fase de potencia con algún transistor.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Secuencia de leds - Kitt!
« Respuesta #14 en: 20 de Junio de 2004, 00:43:00 »
Cuidado con las corrientes.

PORTB:

Imax de salida por pin = 20mA

Imax de salida de todo el portb = 100mA