Autor Tema: multiplexion en 16f84  (Leído 9829 veces)

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

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #15 en: 01 de Enero de 2007, 19:52:30 »
aqui teneis el esquema de mi proyecto supongo que es muy lioso y muy raro  bueno pues si no entendeis algo preguntarmelo. bueno me flatan las resistencias despues del 74ls47 pero bueno eso ahora no es importante lo importante es que veais lo que quiero hacer.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #16 en: 01 de Enero de 2007, 21:54:45 »
Hola Kudox,

Oye tu diagrama es bastante confuso. Sobre todo con los pulsadores de seleccionar display y el de incrementar. No entiendo, que tratas de hacer con ese pulsador por la forma en que lo dibujas. Los otros me quedan mas o menos claros, pero existen las preguntas con respecto a ellos.

Por ejemplo el pulsador de Stop Global, como su nombre lo indica detendra ambos temporizadores. (entendido)
El pulsador de incrementar 30 segundos, incrementara el tiempo en 30 segundos, pero la pregunta es, como incrmentas ese tiempo, es decir; primero seleccionas un display y despues presionas el boton para incrementar su tiempo en 30 segunodos?, o independientemente cuando lo presiones incrementa el tiempo en 30 segundos para ambos temporizadores simultaneamente?

Seria mas facil si trataras de explicar en detalle el funcionamiento. Algo parecido a esto:

Es solo una idea:

1.- Inicialmente ambos temporizadores estan en tiempo 0
2.- Se presiona la tecla de seleccion de temporizador y comienza a destellar uno de ellos indicando su seleccion (temporizador 1 seleccionado)
3.- Presionando la tecla de aumentar, el temporizador seleccionado (el que esta destellando) incrementa su tiempo de segundo en segundo. Y asi seguir presionando hasta obtener el tiempo deseado.
4.- Presionar nuevamente la tecla de seleccion para selecionar el temporizador 2
5.- Presionar la tecla de aumentar para incrementar el tiempo del temporizador 2 al igual que se hizo para el primer temporizador.
6.- Se presiona el boton de paro-arranque correspondiente al temporizador 1, pero este a traves del pin RB5 envia una senial al temporizador 2 para que comience a correr el tiempo en el. En ese momento el temporizador 2 decrementa su tiempo.
7.- Despues del uso de ese temporizador, se presiona la tecla de paro arranque corrrespondiente al temporizador 2, entonces el temporizador 2 detiene su tiempo, y a traves de RB5 le indica al temporizador 1 que arranque su tiempo.
8.- De igual manera sucede para ambos temporizadores.

Preguntas:

Cuando uno de los temporizadores esta corriendo y el otro esta detenido, si se presiona la tecla de incrementar tiempo en 30 segundos, ese tiempo se incrementa solo en el temporizador que esta detenido?

Espero esto te sea de ayuda, ya que para mi si lo es. La forma de conexion de las teclas (pulsadores) de seleccion e incrementar no es muy clara, explica mejor si es un interruptor de 2 polos 1 tiro, 3 polos 2 tiros o es un push button como los demas. Si es especial, por que es especial?

Saludos.

Elreypic

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #17 en: 02 de Enero de 2007, 08:39:08 »
PERDONA POR LA MI MALA COMUNICACION ESTO SI TIENE ARREGLO JEJE : BUENO  voy comentar brevemente lo que hacen cada boton despues pongo el funcionamiento del programa

BOTONES_

1- STOP GLOBAL - para los dos temporizadores a la vez. una vez que se pulsa este boton, los dos se paran y solo empezara a seguir como estaba (osea segira contando el contador que estaba contando). supongo que solo ara falta parar el temporizador que este funcionando el otro ya esta parado solo esta esperando a que el otro pic le avisa pero si no el avisa  que siga esperando.  2
2- rb5  conexion entre pics    esta conexion sirve para a visar al otro pic enviandole un pulso de no se unos 10 ms supongo
3_ dos botones pausa y arranque del otro pic . este boton sirve para  pausar el temporizador del boton que se pulso y enviar por RB5 un pulso para que el otro pic empiece a contar .  en el stop global dije que aria falta avisar solo al temporizador que estaba contando pues es porque si el temporizador pausado esta esperando un pulso por el rb5 para que va a estar miradno si se manda un pulso por el stop global si ya esta parado el que tiene que mirarlo es el que esta trabajando.

4- interruptor incrementar 30. este interruptor es muy sencillo de explicar. por ejemplo el temporizador1 esta contando  y se pulsa el boton de arranque del otro pic osea el que tiene k hacer parar este temporizador y mandar un pulso por rb5 para que el otro pic empiece a contar pues antes de mandar el pulso, el pic mirara si esta activo este  interruptor y si lo esta en este mismo temporizador 1 que le pasa de estar cotando a pararse es en el que se incremetan los 30 segundos.  y nada despues lo e siempre pulso por rb5 para que empiece a contar el otro y este seguira contando, si se pulsa el pausa y arranque  pues mira si este interruptor de incremetnar 30 esta pulsado para a parte de pararse incremetnar 30 segundos.
 este boton es como si fuese un BONO que se regala por cada pausa que se aga. para favorecerte.

5. botones especiales
    SELECCION DISPLAY - este boton sirve para seleccionar display,  bueno selecionar que es eso? bueno mira al principio abra que poner los tiempos y para poner los tiempos selecciono el display que quiera osea ira rotando los parpadeos cada vez que se pulse este boton y mirara si se pulsa durante el parpadeo el boton de incrementar y como ponerlos pues no se como veia que no tenia mas espacio osea mas puertos pa coenctar mas cosas se me ocurrio esto. por el rb5 solo se envia pulsos para decir al otro pic cuando empezar a contar pero... SI NO HE HEMPEZADO A CONTAR  pa que lo kiero.  bueno pues al principio este puerto rb5 actuara como salida a 1. enconces  es como si fuese positivo no? pues por ese una patilla del pulsador va aqui y  la otra pues va al rb6.   asi durante el  el conteo si se puls este boton no afectara su funcionamiento ya que puede aber confusion entre pulsar este o el stop global que tambien entra por el rb6

    INCREMENTAR - este boton sirve para incrementar en el display seleccionado. como he explicado antes este boton hace lo  mismo. una patilla al rb5 qe actua como salidaa y  las otra dos patillas al rb7. esque boton me dio mas problemas. por eso utilice este dispositivo de utilizacion solo cuadno el rb5 actue como salida. si te fijas si se pulsa este boton curante el conteo del temporizador  es como si se calcara los dos   pausa y arranque del otro pic a a la vez entonces abria un problemas que los dos pics se pararian, empezarian a madnar pulsos por rb5  y la de mi madre  para no tener este problema lo conecto al rb5, solo funcionara cuando este puerto este a salida y a 1  y listo
 
 estaras pensando pero si se pulsa este boton y a la vez se manda un pulso por rb5 durante el conteo se armaria la de sanquintin bueno pues si pero   dos cosas una seria mucha coincidencia que a la vez que se envie un pulso  que encima lo mando cuadno yo pulso otro boton, se pulsar a la vez este boton y otro  cosa tranquilo ya me encargare yo que ningun cretino toke este boton durante el conteo jeje.

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #18 en: 02 de Enero de 2007, 08:59:45 »
funcionamiento del proyecto :


    1. los displays todos a 0, rb5 como salida y se mira si se calcan los botones de selec display y incremntar
    2- si se pulsa el seleccion display parpadea horas , mira si calca incremntar si calca incremtnar increemnta en una unidad este display sino mira si se calca selec display para psar al  otro display, si se pulsa seleccion display, parpadea decenas de minutos y lo mismo.
    3. cuando llega a unidades de segundos  y se pulsa el seleccion display parpadearan todos los displays si se pulsa el boton de incremar pasaran a no parpadear y listo para empezar  sino se vuelve a calcar el seleccion display pues entonces es que volvera a parpadear horas .. despues si no se incrementar a minutos y asi..
       tengo que tener en cuenta qeu las horas  ira de 0 a 9  los  decenas de min de 0 a 6  unidades de min de 0 a 9 decenas de segundos de 0 a 6 y decenas de mintos de 0 a 9  si por ejemplo si en cualquier incremento en cualquiera que sea la seleccion del display si por ejemplo llega a su limite ya sea el 9 o el 6 y se vuelvea incrementar  su valor pasara de 9 o 6 el qeu sea a 0 osea volvera a empezar.

    4- posicion de listo - esta posicion dejara de parpadear  los displays. y esperara a qeu se pulse un boton si por ejemplo se pulsa el  boton de pausa y arranque del temporizador 1 empezara a contar este pic  si se pulsa el otro empezara a contar el otro....  si por ejemplo empieza se pulsa el boton del temporizador1  este contara pic pic si se pulsa otra vez como  pues se para y se manda un pulso por rb5 al otro pic y este empezara su turno de contar
                en resumen si durante la posicion de listo cada pic tendra que mirar si se pulsa el boto nde pausa y arranque o si recibe un pulso del rb5 para su comienzo de conteo.

   5. y despues todo como siempre. si esta contando miendra cuenta mirara si se pulsa el stop global o el pausa y arranque    si se pulsa el stop global parara y esperara a qeu vuelva a  pulsar el stop global y seguira contando  si se puls ael pausa y arranque, se para,  mira si esta   activo el incrementar 30  si esta activo incremnta 30 sino pues no  y despues de incremntar o no,  envia un pulso por rb5 y empezara a contar el otro temporizador.

           durante la posicion de pausa tan solo ara falta que mire si se envia un pulso por rb5 ya que si ya esta parado para qeu va mirar si se activa el pausa global para pararse mas ?  y despues cuadno vaya a reanular siga parado pues que no mire nada y que se este quietecito asta que rb5 le avise.


   6. y esto es todo tenia pensado al final poner una bombillita  de avisar cuando el conteo llegara a cero y no se supongo que la mejor forma es coenctar por el rb6 y rb7 una puerta AND y a una bombillita es decir que tan solo se encendera la bombillita cuando por estos dos puertos aya un 1 .  por este motico cuadno lso contadores llegen a 0, se enviara un 1  por rb6 y un por rb7. o no se puede haber segura emtne formas mas sencillas ya que yo soy un ombre complicado a que si jaja.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #19 en: 02 de Enero de 2007, 13:48:56 »
Que tal Kudox,

Ahora si, ya quedo mas claro, que te costaba. JAJAJAJAJA. Ya ves como un simple temporizador se volvio un proyecto mas interesante y complejo.
Si me permites te voy a sugerir otra forma de hacer tu hardware, solo dame un par de dias para carburar bien mi idea y en cuanto tenga algo listo lo publico para ver que te parece. Es posible que el codigo no quepa en el micro que esta usando y posiblemente lo tengas que cambiar por un PIC16F628, pero eso ya nos lo dira el transcurso del desarrollo del codigo.

Saludos.

Elreypic

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #20 en: 02 de Enero de 2007, 23:17:55 »
Que tal Kudox,

Otra vez yo, creo que este seria el hardware que podrias usar. Posiblemente si no cupiera el codigo en el PIC16F84, lo cambiariamos por un PIC16F628A, pero todavia no lo sabes hasta que comenzemos a desarrollarlo.

Saludos

Elreypic.

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #21 en: 03 de Enero de 2007, 08:05:35 »
que tal elreypic:

antes de nada te quiero dar las gracias por ayudarme tio se que para ti esto puede que sea muy simple y asta puede ser pesado. yo soy nuevo como ves y estoy empezando con la electronica y con la programacion. y me gusta muchisimo aunque no tenga mucha idea jeje. pues nada eso que muchas gracias.

te  comento:
he visto el hardware que has diseñado y me parece una maravilla.
veo que en vez de conectar directamente la base de los transistores al pic utilizas un demultiplexor par asi ahorrar mas  patitas. perfecto. bueno no veo muy bien los valores y esas cosas pero bueno lo que importa es el circuito eso mas adelante ya se vera mejor supongo.  respecto a los transistores supongo que seria mejor un bc327  que emite hasta 0,8A  o igual seria demasiado no se quiero que luego me des tu opinion.  bueno respecto a las botoneras tengo unas pregutas que hacerte.

veo que todas las salidas desde rb3 a  rb7 y el ra4  van hacia abajo.. teniendo la mayoria de ellos los pulsadores o el interruptor  pero hacia donde van hacia el otro pic. si es asi creo que va ver un problemilla.

y ahora mismo se me ocurre uno supongo que igual sea el unico que aparezca no lo se . si despues de poner los tiempos en los contadores se pasa al arranque del conteo.  como elegir que contador quiero que empiece a contar sin embargo si estan separado por ejemplo el local stop,  calcando uno u otro  se podria empezar a contar el que quisiera y despues avisaria al otro contador cuando empezar por un pulso.

vale ahora que me he fijado bien si estan unidas. ya lo he visto en la parte superior izquierda en  pequeñito.  creo que la solucion seria en separar este unico boton. ah y  otra cosa veo que tambien has puerto lo de la bombillita perfecto pero con una pequeña modificacion. una bombilla para cada pic para asi sacer cual es el que ha terminado. es decir no solo una para cada el proyecto en general sino una para cada contador y que se ilumine la del contador que aya finalizado.
« Última modificación: 03 de Enero de 2007, 08:10:14 por kudox »

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #22 en: 03 de Enero de 2007, 11:22:11 »
Que tal Kudox,

Mira en el documento que adjunte en mi post anterior consta de dos paginas en una ves la parte superior del circuito y en la otra la parte inferior, que no es mas repetir el circuito dos veces. Con respecto a los botones estan como tu los definistes en tu explicacion, asi existe un boton de paro local y este mismo hace lo de arranque remoto, es decir, para un PIC funciona de stop pero para el otro funciona de arranque, asi cunado presionas ese boton, un PIC detiene su cuenta y el otro arranca su cuenta.

Con respecto a los transistores no es necesario colocar los que tu mencionas, yo puse 2N3906 que puede dar hasta 200 mA, lo que es suficiente porque recuerda que enciendes un display a la vez y cada display tiene 7 segmentos y cada segmento es de 20 mA, entonces cuando se enciendan todos los segmentos de un display (cuando muestra un 8) el consumo maximo es de 140 mA, por lo que es suficiente con el 2N3906. Pero si para ti es mas facil conseguir el transistor que propones no hay problema, usalo.

Hazme saber si usas proteus o si tienes algun otro software para captura de esquematicos. Yo uso tambien el OrCad. asi que voy a probar con ese para que sea mas facil para ti entender el esquematico.

Saludos

Elreypic.
En cuanto al diagrama, seria mejor si tuvieras el simulador de proteus asi podrias ver de mejor manera

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #23 en: 03 de Enero de 2007, 11:44:38 »
muy buenas de nuevo elreypic:

ya he visto la segunda parte esque no me salia la imagen. si, no te preocupes por lo del proteus lo tengo instalado bueno tener lo tengo instalado no se que pasa que no me deja hacer circuitos muy grandes  debe ser porque es un demo y cuando pongo una simulacion  tambien me salen errores de librerias. 

tienes razon, los botones estan separados. ahora que he visto la segunda parte,  el ra4 que tiene un pulsor es la entrada del rb3 del otro. correcto pues entonces ahora me parece un hardware perfecto. respecto a los transistores usare el 2n3906 ya que tengo los dos modelos tanto este como el bc327 y es verdad que con estos es suficiente esque mi anterior programacion que era una chapuza jeje utilice los bc327 porque para poner todo el contador a cero no utilizaba  multiplexion (de ahi mi problema que en la mitad de los displays no se encendian los leds.)

para terminar el hardware tan solo queda modificar la bombilla en vez de poner una bombilla, se pondra 2  pero bueno eso supongo que sera facil. tan solo es poner el circuito de la bombilla en cada Y7 del demultiplexor

Desconectado kudox

  • PIC10
  • *
  • Mensajes: 28
Re: multiplexion en 16f84
« Respuesta #24 en: 05 de Enero de 2007, 11:04:46 »
pues nada visto que ya esta  echo el hardware creo que abra que ir empezando ha hacer  la programacion por partes. supongo que empezaremos por intrudir los datos en los displays verdad? o es mejor empezar con la programacion del decremento de los displays. 
me gustaria que me dieras tu opinion. otro problema es que si tuvieras que volver a hacer el programa qeu he echo aria otra vez lo mismo jeje.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: multiplexion en 16f84
« Respuesta #25 en: 05 de Enero de 2007, 12:25:05 »
Que tal kudox,

Bueno saber de ti. Pues te comento que ya comence con la programacion y el primer paso sera la parte de programar el tiempo, mostrando el tiempo programado y el destello del digito seleccionado.

Para ello el funcionamiento estara asi.
1.- Al arrancar el micro colocara los displays en ceros (00000) y esperara hasta que se presione la tecla de seleccion.
2.- Presionada la tecla de seleccion, el display de las horas comenzara a destellar indicando su seleccion y esperando a que le boton de incrementar se presione o bien esperar  una vez mas por el boton de seleecion para pasar al siguiente deigito.
     Una vez que esta seleccionado un digito los demas permaneceran apagados (esto para facilitar la programacion y reducir el codigo lo mas posible, ya que estamos limitados a 1 KB).
3.- Una vez que se introduce el ultimo digito (el de las unidades de segundo) esperara se mostrara en su totalidad el tiempo configurado, para asi solo esperar a que se reciba la senial de arranque.

Hasta ahora estoy trabajando en los pasos 1 y 2 solo falta realizar la simulacion y verificar que todo este correcto para continuar con el paso 3. Una vez que este lista esa parte te lo hare saber.

Te queria comentar tambien si era posible mantenernos en contacto a traves de mi e-mail para darle seguimiento a esto y no incrmentar las citas en este post. Y una vez terminado el proyecto lo publicaramos en el foro de proyecto para su cosulta por otro foreros.

Si te parece esto hazmelo saber a mi e-mail. elreypic@hotmail.com

Saludos

Elreypic.

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: multiplexion en 16f84
« Respuesta #26 en: 21 de Enero de 2007, 23:14:36 »
saludos amigos
que curioso tu proyecto.... sobretodo es interesante tratar de meter un timer con tantas funciones en un pic 16F84.. te digo que me llamo la atencion el proyecto, porque no solo esta lo de meter todo eso en un pic.. si no tambien la ingeniosa forma de conectar todos los pulsadores con tan pocos puertos de entrada disponibles.. jejeje.. bueno yo tambien muchas veces me he empesinado en trabajar con ese pic. y muchas veces he tratado de llevar al pic a su limite incluso sobrepasar el numero de puertos disponibles para entrada de datos...
bueno no quiero cansarlo .., solo quiero felicitarlos y animarlos :-/ con su proyecto

si UDs estan de acuerdo tal vez pueda ayudarlos un poco.... en mi poco entenderdel asm 8)
Atte.
Johnny Bravo