Autor Tema: Coche fantastico  (Leído 4426 veces)

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

Desconectado Wirry

  • PIC10
  • *
  • Mensajes: 1
Coche fantastico
« en: 30 de Junio de 2005, 02:26:00 »
Hola muy buenas, os quería preguntar que me expliquéis como puedo hacer, a traves de un micro PIC y con uno leds la iluminación del coche fantástico, la que llevaba delante del coche. Si podéis decirme los esquemas o links donde estén os lo agradezco.


MUCHAS GRACIAS

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Coche fantastico
« Respuesta #1 en: 30 de Junio de 2005, 03:48:00 »
Aqui tienes una página para modificar la apariencia de la tercera luz de freno. Primero está fija y despuñes hace filigranas, entre las cuales esta la del coche fantástico. Tienes la pcb y el código asm para el 16F84

http://www.terra.es/personal/atahualp/proyecto/ZIPZAP.HTM

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Coche fantastico
« Respuesta #2 en: 30 de Junio de 2005, 05:03:00 »
¿Eso es legal? Me refiero, ... ¿pasará la ITV?Avergonzado
Si juegas contra el mejor, pierdes como los demás.

Desconectado adrian2a1

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 75
RE: Coche fantastico
« Respuesta #3 en: 30 de Junio de 2005, 06:36:00 »
Tengo lo siguiente del libro que yo uso. Espero te sirva.

Codigo:
;************************************ Retardo_08.asm ************************************
;
;   ===================================================================
;     Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;     E. Palacios, F. Remiro y L. López.      www.pic16f84a.com
;      Editorial Ra-Ma.  www.ra-ma.es
;   ===================================================================
;
; Por la barra de diodos LED conectada al puerto de salida se visualizará un juegos de
; luces que al lector le resulte divertido. Hay que utilizar una tabla de datos.
;
; ZONA DE DATOS **********************************************************************

   LIST      P=16F84A
   INCLUDE      <P16F84A.INC>
   __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

   CBLOCK  0x0C
   TablaLongitud
   TablaPosicion
   ENDC

; ZONA DE CÓDIGOS ********************************************************************

   ORG    0
Inicio
   bsf   STATUS,RP0
   clrf   PORTB
   bcf   STATUS,RP0
Principal
   movlw   TablaFin-TablaInicio   ; Calcula la longitud de la tabla y la carga en
   movwf   TablaLongitud   ; este registro que actuará como contador.   
   clrf   TablaPosicion   ; Apunta a la primera posición de la tabla.
VisualizaOtraPosicion
   movf   TablaPosicion,W   ; Posición de la tabla a leer.
   call   LeeTabla      ; Visualiza la posición de la tabla.
   movwf   PORTB      ; El resultado se visualiza por la salida.
   call   Retardo_200ms   ; Durante el tiempo estimado.
   incf   TablaPosicion,F   ; Apunta a la siguiente posición por visualizar.
   decfsz   TablaLongitud,F   ; ¿Ha terminado la tabla?
   goto   VisualizaOtraPosicion; No, pues visualiza la siguiente posición.   
   goto    Principal      ; Repite el proceso.
;
; Subrutina "LeeTabla" ------------------------------------------------------------------
;
LeeTabla
   addwf   PCL,F
TablaInicio         ; Indica la posición inicial de la tabla.
   retlw   b"00000000"
   retlw   b"10000001"
   retlw   b"01000010"
   retlw   b"00100100"
   retlw   b"00011000"
   retlw   b"00111100"
   retlw   b"01111110"
   retlw   b"11111111"
   retlw   b"11100111"
   retlw   b"11000011"
   retlw   b"10000001"
   retlw   b"10000001"
   retlw   b"11000011"
   retlw   b"11100111"
   retlw   b"11111111"
   retlw   b"11111111"
   retlw   b"01111110"
   retlw   b"00111100"
   retlw   b"00011000"
   retlw   b"00100100"
   retlw   b"01000010"
   retlw   b"10000001"
TablaFin         ; Indica la posición final de la tabla.

   INCLUDE  <RETARDOS.INC>
   END


Suerte.

Adrian.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Coche fantastico
« Respuesta #4 en: 30 de Junio de 2005, 06:39:00 »
Ya se complica el libro ... ¿no es mas sencillo rotar 7 veces para cada lado en un bucle infinito? ... Sigo con la misma duda, ¿con eso pasa la ITV? xDD
Si juegas contra el mejor, pierdes como los demás.

Desconectado adrian2a1

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 75
RE: Coche fantastico
« Respuesta #5 en: 30 de Junio de 2005, 06:46:00 »
Radon, el juego de luces del coche fantásticoo no se puede hacer como dices, no es un juego sencillo de una luz que se va desplazando. La única forma de hacerlo es mediante tabla, o al menos la más sencilla.

Salu2

Adrian.


Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Coche fantastico
« Respuesta #6 en: 30 de Junio de 2005, 07:48:00 »
No ?????, jugaria que lo hecho rotando y sumandole 1 ...
Si juegas contra el mejor, pierdes como los demás.

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
RE: Coche fantastico
« Respuesta #7 en: 30 de Junio de 2005, 19:03:00 »
Por si te sirve de ayuda, este tambien fue mi primer proyecto, lo hice sin tabla y con cinco LEDs:

   __CONFIG   _RC_OSC
   LIST   P=16F84A
   include <P16F84A.inc>       

STATUS   equ   0x03       
PTOB   equ   0x06       

REG1   equ   0x0C       
REG2   equ   0x0D       
REG3   equ   0x0E           

reset   
   org   0x00         ; origen del programa, aquí comenzará
   goto    inicio        ; siempre que ocurra un reset
   org    0x05         ; salta a "inicio"
               
inicio   
   
   bsf   STATUS,5      ; pone rp0 a 1 y pasa al banco1
   movlw   b"0"         ; carga W con 00000000
   movwf   TRISB         ; y pasa el valor a trisb
   bcf   STATUS,5      ; pone rp0 a 0 y regresa al banco0

ahora
   bsf   PTOB,1      ; pone a 1 en RB1(enciende el LED1)
    call   retardo           ; llama al retardo
   bcf   PTOB,1           ; pone a 0 RB1 (apaga el LED1)
   bsf   PTOB,2      ; pone a 1 en RB2(enciende el LED2)
    call   retardo           ; llama al retardo
   bcf   PTOB,2           ; pone a 0 RB2 (apaga el LED2)
   bsf   PTOB,3      ; pone a 1 en RB3(enciende el LED3)
    call   retardo           ; llama al retardo
   bcf   PTOB,3           ; pone a 0 RB3 (apaga el LED3)
   bsf   PTOB,4      ; pone a 1 en RB4(enciende el LED4)
    call   retardo           ; llama al retardo
   bcf   PTOB,4           ; pone a 0 RB4 (apaga el LED4)
   bsf   PTOB,5      ; pone a 1 en RB5(enciende el LED5)
    call   retardo           ; llama al retardo
   call   retardo
   bcf   PTOB,5        ; pone a 0 RB5 (apaga el LED5)
   bsf   PTOB,4      ; pone a 1 en RB4(enciende el LED4)
    call   retardo           ; llama al retardo
   bcf   PTOB,4           ; pone a 0 RB4 (apaga el LED4)
   bsf   PTOB,3      ; pone a 1 en RB3(enciende el LED3)
    call   retardo           ; llama al retardo
   bcf   PTOB,3           ; pone a 0 RB3 (apaga el LED3)
   bsf   PTOB,2      ; pone a 1 en RB2(enciende el LED2)
    call   retardo           ; llama al retardo
   bcf   PTOB,2           ; pone a 0 RB2 (apaga el LED2)
   bsf   PTOB,1      ; pone a 1 en RB1(enciende el LED1)
    call   retardo      ; pone a 0 RB1 (apaga el LED1)
   bcf    PTOB,1
   call   retardo
   call   retardo      ;esto es una parada entre
   call   retardo      ;ciclo y ciclo
   call   retardo
   call   retardo
   call   retardo   
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   call   retardo
   goto    ahora           ; repite todo de nuevo

retardo   
   movlw   10          ; Aquí se cargan los registros
   movwf   REG1           ; reg1, reg2 y reg3
                ; con los valores 10, 20 y 30
tres
   movlw   20           ; respectivamente
   movwf   REG2

dos
   movlw   30
   movwf   REG3

uno   
   decfsz   REG3,1           ; Aquí se comienza a decrementar
   goto   uno          ; Cuando reg3 llegue a 0
   decfsz   REG2,1           ; le quita 1 a reg2
   goto   dos          ; cuando reg2 llegue a 0   
   decfsz   REG1,1           ; le quita 1 a reg1
   goto   tres           ; cuando reg1 llegue a 0
   retlw   00          ; regresa al lugar
                 ; de donde se hizo la llamada

   end          

Un Saludo

Tutoriales y proyectos de electrónica

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Coche fantastico
« Respuesta #8 en: 01 de Julio de 2005, 00:43:00 »
Si me permitís una sugerencia, para realmente imitar el efecto de luces del "coche fantástico" o lo hacemos con bombillas incandescentes o hay que apagar y encender los leds progresivamente con PWM.
¿No recordáis cómo las luces al moverse dejaban cierta estela?

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Coche fantastico
« Respuesta #9 en: 01 de Julio de 2005, 06:33:00 »
Jajaj. Bueno si se quiere estela con leds, el programa se complica pero que bastante.

También os podeis comprar el coche fantástico original en ebay y os dejais de complicaciones:

http://www.sologadgets.com/2004/07/se_pone_a_la_ve.html

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Coche fantastico
« Respuesta #10 en: 27 de Septiembre de 2005, 20:15:00 »
Bueno yo desarrolle este programita q SIMPLEMENTE hace un efecto pin-pon con 8 leds y un solo led a la vez encndido:

Codigo:

list   p=16f84a
   include <p16f84a.inc>


CounterA   equ   10h
CounterB   equ   11h
msret      equ   12h

   org      00h
   goto   start
   org      05h

start   bsf      status, rp0
      clrf   trisb
      bcf      status, rp0
      movlw   1
      movwf   portb
      bcf      status, c
      call    ret
rtr      rlf      portb, f
      btfsc   status, c
      goto   rtl
      call   ret
      goto   rtr
rtl      rrf      portb, f
      btfsc   status, c
      goto   rtr
      call   ret
      goto   rtl
      

;PIC Time Delay = 0.0100020 s with Osc = 4.000000 MHz
ret      movlw   8
      movwf   msret
msc      movlw   D"13"
      movwf   CounterB
      movlw   D"251"
      movwf   CounterA
loop   decfsz   CounterA,1
      goto   loop
      decfsz   CounterB,1
      goto   loop
      decfsz   msret, 1
      goto   msc
      return
      end



no le puse comentarios pero es bastante facil de leer

Desconectado Chicoteleco

  • PIC10
  • *
  • Mensajes: 5
RE: Coche fantastico
« Respuesta #11 en: 29 de Septiembre de 2005, 17:43:00 »
en efecto, está claro que le coche fantásico no es tal si no hay cierta estela... Sonrisa GiganteSonrisa Gigante

y probar de hacer que los leds bajen de intensidad con algún condensador que se haya cargado al activar la correspondiente salida...?

saludos

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Coche fantastico
« Respuesta #12 en: 29 de Septiembre de 2005, 18:11:00 »
mmm interesante idea.... un condensador de media capacidad y una resistencia alta darian un T sufiente para la estela, solo habria q poner una pausa entre los pulsos de rotacion un poco mas grande para darles tiempo a los condensadores de cargarse completamente.

bueno aki esta la simulacion y el PCB en proteus (del q no tiene condensadores)

Simulacion

PCB

Desconectado Chicoteleco

  • PIC10
  • *
  • Mensajes: 5
RE: Coche fantastico
« Respuesta #13 en: 03 de Octubre de 2005, 18:06:00 »
como es que no deja descargar los ficheros adjuntos al mensaje? Y si que deja ponerlos al escribir el mensaje..?¿ invasorinvasor

un saludo


 

anything