Autor Tema: Mis progresos  (Leído 4739 veces)

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

Desconectado Joga

  • PIC10
  • *
  • Mensajes: 31
Mis progresos
« en: 07 de Mayo de 2008, 10:57:43 »
Bueno, pues inicio este post para ir poniendo mis progresos y así me voy animando yo también.

He probado el en circuito el programa del led que parpadea y me me funcionado a la primera   :-/.

No pondo el código porque está en muchos sitios y solo me he limitado a copiarlo, pero para los siguientes ejercicios: un par de leds, el del "coche fantastico" y esas cosillas, me fijaré en el esquema del montaje y el código lo intentaré hacer yo, publicándolo para que digais que os parece o si alguien empieza de cero como yo, compartamos experiencias.

Un saludo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Mis progresos
« Respuesta #1 en: 07 de Mayo de 2008, 11:13:13 »
Bueno, pues inicio este post para ir poniendo mis progresos y así me voy animando yo también.

He probado el en circuito el programa del led que parpadea y me me funcionado a la primera   :-/.

No pondo el código porque está en muchos sitios y solo me he limitado a copiarlo, pero para los siguientes ejercicios: un par de leds, el del "coche fantastico" y esas cosillas, me fijaré en el esquema del montaje y el código lo intentaré hacer yo, publicándolo para que digais que os parece o si alguien empieza de cero como yo, compartamos experiencias.

Un saludo.

Joga, te felicito, todo aporte por menor que parezca ayudará a alguien.   ;) ;)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: Mis progresos
« Respuesta #2 en: 07 de Mayo de 2008, 12:10:41 »
Opino igual.

Bien está que al principio uno se fije en los programas de los demás pero luego hay que soltarse y hacerlos uno mismo, de lo contrario no se aprende.

Adelante.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Mis progresos
« Respuesta #3 en: 07 de Mayo de 2008, 15:20:30 »
Saludos Joga! Me parece excelente este hilo que has iniciado  :-/ ... vas a aprender y a divertirte muchísimo!
Y aquí estaremos para colaborar en lo que se pueda...
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Joga

  • PIC10
  • *
  • Mensajes: 31
Re: Mis progresos
« Respuesta #4 en: 09 de Mayo de 2008, 17:11:29 »
Pues voy poniendo el esquema de los dos primeros ejercicios que voy a hacer:

El primero se trata de que un led (led1) se encienda, despues de 1s se encienda el otro (led2), se apaga el led1 y despues el led2, volviendo a empezar de nuevo.
Por lo que tendré que crear una rutina de retardo.



Y el segundo se trata de hacer "el coche fantastico", además de otros 2 o 3 efectos diferentes que se cambiaran mediante la interrupción producida por el pulsador.

Lo de los consumos, no lo tengo muy claro: se supone que en modo source el puerto B soporta 100mA, y que los leds-rojos consumen unos 20mA, por lo que tengo 5 leds x 20mA = 100mA + la corriente que entrará en modo sumidero al RB0. ¿no?. No se si con unas resistencias mayores en los leds disminuiría el consumo, ni si la resistencia de 10k en el pulsador es la más adecuada.

En este caso los retardos los intentaré implementar mediante el TRM0.   :-)




Un saludo.

P.D.: "sumidero, source, interrupciones...", si parece que se de lo que hablo.  :mrgreen:.


Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Mis progresos
« Respuesta #5 en: 09 de Mayo de 2008, 17:28:17 »
Felicitaciones Joga!  :-/
Bueno solo te quería comentar que yo siempre uso resistencias de 470 ohms para los leds, y me funcionan de lo lindo... así se obtiene buena luminosidad en los leds y se protege al pic también. De todos modos si estoy equivocado ya algún experto lo aclarará...
Y en cuanto a lo de los pulsadores, sería bueno que le colocaras condensadores para evitar los efectos rebote...
Ok es todo, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: Mis progresos
« Respuesta #6 en: 09 de Mayo de 2008, 19:40:04 »
el efecto rebote lo podrias solucionar por software, al momento que sensas el estado del pulsador, cuando entre a la rutina del mismo espera un tiempo(us o ms) y vuelves preguntar por el pulsador si se mantiene con el nivel logico que deberia tener al pulsar, entonces no es un rebote. :D espero que se me entienda y si no avisen para poner un ejemplillo :D

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Mis progresos
« Respuesta #7 en: 09 de Mayo de 2008, 20:03:48 »
Totalmente de acuerdo poseidon!  :-/
Esa es otra opción para eliminar los rebotes...
Aunque a mí me siguen gustando los condensadores...  :D
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: Mis progresos
« Respuesta #8 en: 09 de Mayo de 2008, 22:19:30 »
Hola, lo que yo utilizo como eliminadores de rebotes y falsas señales en mis diseños, generalmente sometidos a ambientes críticos, es una protección por HW que puede variar desde un simple pasabajos de frecuencia de corte baja (10 Hz por ejemplo) hasta todo un circuito de protección con TVS, diodos schkotty, inductores y hasta optoacopladores, pero el filtro RC es siempre fundamental para mi.

Por otro lado, tambien utilizo un filtrado por SW de dos formas, primero genero un filtro pasabajos para cada entrada de pulsador, no lo implemento con delays porque es una perdida de tiempo importante, generalmente lo hago utilizando variables incrementales referidas a un timer y comprobandolas cada ciclo, porque de todas formas no necesitas exactitud a la hora de determinar la frecuencia de corte del filtro digital, puede estar entre los 50 y los 5 Hz tranquilamente. Luego hago un muestreo del estado del puerto anterior y lo compruebo con el estado actual, para que la deteccion sea por flancos y no por estados, que son menos confiables. He tenido a veces que realizar 2 comprobaciones de estado, porque el ruido era tan fuerte que me cambiaba los bits de estado de la entrada.

Nos estamos escribiendo.

"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Mis progresos
« Respuesta #9 en: 09 de Mayo de 2008, 22:44:03 »
Saludos!
Ya me estoy acostumbrando a las superexplicaciones del Dr. Gonzalo  :D
Viejo gracias por compartir tu experiencia!  :-/
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: Mis progresos
« Respuesta #10 en: 10 de Mayo de 2008, 07:45:29 »
Gracias por el cumplido firepic, tambien todos aqui en el foro te agradecemos tu aporte.  :-) :-) :-)

Un saludo desde Argentina.
"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado Joga

  • PIC10
  • *
  • Mensajes: 31
Re: Mis progresos
« Respuesta #11 en: 12 de Mayo de 2008, 16:14:28 »
Gracias a todos por las respuestas. He terminado el primer ejercicio y lo he probado en circuito satisfactoriamente  :mrgreen:.
La rutina de retardo no me ha salido exacta, me da 1,003 segundos, a mi me vale por ahora.  :D.

Aquí os pongo el código:

Código: [Seleccionar]
;DIRECTIVAS------------------------------------------------------------------------

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC         ;Configuración del grabador

LIST P=16F84A

INCLUDE <P16F84A.INC>



;DECLARACION DE VARIABLES-----------------------------------------------------------



CBLOCK 0X0C   ;Creo 3 contadores de memoria para el retardo.

Cont_A             ; Cuenta 500 uS

Cont_B

Cont_C

ENDC



;-----------------------------------------------------------------------------------



ORG 0



Inicio

bsf STATUS,RP0   ;Paso al banco 1

clrw ;Pongo a 0 el registro W

movwf TRISB        ; Configuro como salida el puertoB.

bcf STATUS, RP0  ;Vuelvo al banco 0



;Aquí se enciende y apagan los leds.





Principal

bsf PORTB,0 ;Pone 1 en RB0 (enciende el LED 1)

call Retardo_1s  ;Espera 1 segundo.

        bsf PORTB,1         ;Pone 1 en RB1 (enciende el LED 2)

call Retardo_1s

bcf PORTB,0 ;Pone a 0 el RB0 (apaga el LED 1)

call Retardo_1s

bcf PORTB,1             ;Pone a 0 el RB1 (apaga el LED 2)

call Retardo_1s

goto Principal



;Rutina de retardo.

Retardo_1s

movlw .10 ;Aquí se cargan Cont_C a 10

movwf Cont_C

 

T100mS

movlw .199           ;Aquí se carga Cont_B a 199

        movwf Cont_B



T500uS     

    movlw .166

    movwf Cont_A             ;Aquí se carga Cont_A a 166



Bucle_int

decfsz Cont_A,F     ;Comienza a decrementar.

goto Bucle_int 

nop

nop                         ;Aquí termina el bucle con Cont_A y tanscurren 500uS

decfsz Cont_B,F        ;Decrementa Cont_B

goto T500uS          ;Cuando Cont_B llega a 0, han transcurrido unos 100mS aprox.

decfsz Cont_C,F        ;Decrementa Cont_C

goto T100mS         ;Cuando Cont_C llega a 0 ha transcurrido 1 segundo aprox.

return    ;vuelve a donde se hizo la llamada.T



END

Un saludo.
« Última modificación: 12 de Mayo de 2008, 16:17:32 por Joga »

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: Mis progresos
« Respuesta #12 en: 13 de Mayo de 2008, 12:46:20 »
Solo un pequeño comentario. Para realizar el retardo de 1s has usado 3 contadores anidados y para calcular sus valores supongo que habrás empleado algún programa específico para esto.

También puedes conseguir retardos usando el TMR0. El uso de un TMR para los retardos es muy interesante desde el punto de vista de que el PIC no tiene porqué estar esperando sin hacer nada a que termine el retardo, usando el TMR0 puede estar haciendo otras cosas.

Un saludo

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Mis progresos
« Respuesta #13 en: 13 de Mayo de 2008, 14:11:25 »
Es cierto Joga!  :-)

Trata de usar mejor los propios timers del pic...
Bueno lo que te dice el maestro pocher sobre hacer otras cosas a la vez es cuando usas también interrupciones...

Pero aunque no trabajes con interrupciones igual es mejor porque te permite hacer la pausa usando menos código, solo configuras el timer con las opciones apropiadas para tu retardo, lo cargas con el valor correcto y luego simplemente te queda evaluar el estado de t0if para saber cuándo ocurrió el desbordamiento... y la pausa te queda mucho más exacta...
De todos modos por ahí conseguirá mucha más información de cómo usar el timer...

Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Joga

  • PIC10
  • *
  • Mensajes: 31
Re: Mis progresos
« Respuesta #14 en: 13 de Mayo de 2008, 14:41:07 »
El calculo para las interrupciones lo he hecho yo manualmente, sin ningún programa (por eso no me ha salido exacto del todo), y lo que me comentáis de las interrupciones y el TMR, lo tengo para el próximo ejercicio, si leéis mas arriba veréis que dige que este primero lo haría así, y para el segundo implementaría interrupciones y el TMR (lo digo sin acritud ninguna  :mrgreen:). Primero hay que hacerlo mas difícil y engorroso para luego apreciar las características que te permiten hacerlo mas cómodamente, como las señales para motores paso a paso que he oído que son un coñazo en este pic, así cuando cambies a un pic que implementa pines para esto, lo valoras de verdad. Y disfrutas al ver como consigues lo mismo con menos trabajo.  :-/

Un saludo.