Autor Tema: Temporizador por monedas  (Leído 6484 veces)

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

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #15 en: 16 de Abril de 2018, 17:54:21 »
Fer_TACA, te agradezco mucho todo el tiempo que has empleado en ayudarme, pero no tengo mas remedio que abandonar.
No logro entender lo que me mandas, entiendo que es superior a mis conocimientos y lo único que voy a conseguir es agobiarte. Pensaba que iba a ser un proyecto mas sencillo y sin embargo a para mi está siendo muy difícil de entender.

Como te decía dejamos aquí este tema dándote mi mas sincero agradecimiento.


Saludos amigo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #16 en: 17 de Abril de 2018, 05:26:05 »
No sabes cuanto siento el que lo dejes. Me queda el mal sabor de boca y pensar de no haber sabido hacerme entender. No obstante voy a intentarlo una vez más.
El fichero que te adjunté hacia lo siguiente:
Nada mas comenzar, dar tensión al equipo, empieza a funcionar tu programa main; que solo hace el estar comprobando si la cuenta total ha llegado a 0. Inicialmente como no detecta ninguna moneda, el programa se va por el "no" y no hace nada". En el momento que hubiese pasado una moneda y el tiempo se hubiese decrementado y llegado a 0 te cambiaria el estado que hubieses puesto al detectar un paso de moneda.

Además, digamos que en 2º plano, el micro está esperando que se detecte el paso de una moneda. Cuando la detecta, por hardware (pulsador) se manda un pulso que es detectado por el pic. El main se para y salta a realizar el entorno "incremento de tiempo". Este lo único que realiza es sumar a la variable "tiempo_total" el valor de 60 y regresa al entorno del main prosiguiendo el programa donde lo dejó.

En este momento como todavía esa variable  no se ha descontado y llegado a 0, pro tanto el entorno del main sigue sin realizar nada.

Por otra parte, también bajo 2º plano, el pic por medio del oscilador esta contando pulsos. Eso se realiza en el entorno de "interrupción TMR0". En el se incrementa, cada vez que el contador se desborda y pasa de FF a 00, una unidad la variable cuenta_1sg. Después de compara para ver si llega, en este caso a 122, que con la configuración del TMR0 que tenemos indica que ha pasado 1 sg. Cuando lo hace, las acciones que realizamos== decrementar en una unidad el tiempo total y resetear el contador de 1sg para una nueva cuenta.

Como tu main sigue funcionando a la vez que el TMR0 cuando la cuenta total llega a 0, realizas la acción de cambiar la salida.

Esto es mas o menos lo que te entendí, pero además habría algún detalle mas a mejorar pero eso seria para mas adelante pues lo importante era que entendieses lo anterior.

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #17 en: 17 de Abril de 2018, 09:33:11 »
Hola Fer_TACA, la cuestion es que llego a entenderlo, pero no tengo suficiente conocimiento para poder implementar o eliminar partes del programa, por ejemplo; al encender no debe de activarse el led C2, solo se activa cuando se introduzca una moneda, ademas si le hemos programado un tiempo por moneda y antes de que finalice ese tiempo introducimos una nueva moneda este nuevo tiempo se ha de sumar con el resto de lo que queda por consumir de la primera moneda que habiamos depositado.

Es igual a como funciona una maquina para lavar coches.

Pues bien, es este funcionamiento que no veo en lo que tu me mandas y ademas soy incapaz de terminar tu proyecto para que funcione como lo necesito. Por ello lo de abandonar y sobre todo para no agobiarte, ya que veo tu interés y por mi parte no puedo avanzar.

Si no te importa y ya casi de manera por necesidad te pediria ¿me lo podías terminar?

De nuevo muchas gracias por tu interes de ayudarme.


Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #18 en: 17 de Abril de 2018, 13:25:29 »
al encender no debe de activarse el led C2,

Eso no es problema, basta con que cambies en la parte del Main las asignaciones de C2 para que si no hay moneda en vez de 1 se ponga a 0 y en la parte del si se ponga a 1.

ademas si le hemos programado un tiempo por moneda y antes de que finalice ese tiempo introducimos una nueva moneda este nuevo tiempo se ha de sumar con el resto de lo que queda por consumir de la primera moneda que habiamos depositado.

Eso ya lo hace. Cuando hay una moneda nueva estas sumando el tiempo que hayas prefijado. Yo en el ejemplo he puesto 1minuto= 60 segundos. Por eso hacemos  "Tiempo_total = Tiempo_total + 60". Pero tu puedes poner el tiempo que estimes.
Aquí, como te dije anteriormente si veo un pequeño problema y es ¿Cuál es el tiempo máximo? Me imagino que debería haber un tope. Si es asi basta con añadir un par de bloques más, pero habría que saberlo.
te adjunto los cambios de la inicialización.


Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #19 en: 17 de Abril de 2018, 15:28:27 »
Si, Fer_TACA, había pensado en un máximo de 5 monedas. ¿Habría posibilidad de encender un led por cada moneda y que al final del tiempo consumido se apaguen? Osea, 3 monedas 3 leds encendidos, acaba el tiempo acumulado por el total de monedas introducidas y se apagan los 3 leds.

De nuevo un millón de gracias.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #20 en: 17 de Abril de 2018, 16:24:46 »
si se puede hacer perfectamente. Pero ¿Cuánto tiempo por cada moneda?
Otra cosa, mañana casi seguramente no podré hacer nada. El jueves continuaré. Si se te ocurre alguna cosa nueva indícamelo y vemos como realizarlo.

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #21 en: 17 de Abril de 2018, 16:48:22 »
Gracias Fer_TACA, serian 6,5 minutos por moneda.

Saludos.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #22 en: 19 de Abril de 2018, 10:38:35 »
Como te dije ayer, no pude hacer nada.
Te adjunto lo que me has pedido. Lo he realizado de forma simple para que puedas entenderlo.
No es la mejor forma ya que se puede optimizar mucho, pero es plenamente funcional y podrás seguir la simulación si quieres y lo entenderás.
Ahora solo haría falta que lo probases realmente para ver si te funciona, ya que las pruebas solo han sido simuladas y puede haber algun pequeño desajuste de los tiempos.

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #23 en: 19 de Abril de 2018, 13:21:02 »
De acuerdo Fer_TACA, así lo haré, lo probaré en físico y te comentaré los resultados. De todos modos funcione bien o hubiera que modificar algo te estaré siempre agradecido.
Por mi parte intento de aprender Flowcode todos los días, pero en ocasiones me resulta bastante difícil, por ello lo de pedir ayuda.
Como te decía, muchisimas gracias por toda la ayuda que me has prestado.

Saludos.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #24 en: 19 de Abril de 2018, 13:41:36 »
 :) :)

Pero al probarlo revisa las conexiones u asignaciones de pines de salida que he puesto. Como no me has dicho nada he elgido los que me han parecido mas lógicos y como entrada he usado el RA2.

Ya me dirás

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #25 en: 19 de Abril de 2018, 15:19:35 »
La distribución de pines me parece perfecta.
Mañana lo pruebo y te comento.

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #26 en: 20 de Abril de 2018, 08:41:21 »
Hola de nuevo Fer_TACA, he creado el código HEX y se lo he volcado al pic sin ningún problema, he polarizado el pin RA2 con 10K a masa ya que está en activación alta y he colocado los 5 leds, pero no funciona, no hace nada, no llega a lucir ningún led. He grabado un segundo pic y sigue sin funcionar.

¿Que crees que puede ser?

Saludos.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #27 en: 21 de Abril de 2018, 08:25:40 »
¿Cómo tienes configurado el pin RA3 que el pin de reset dentro del proyecto?
Lo primero que haría seria configurarlo como externo y colocar una resistencia de unos 4,7K a +5V ya que puede que se esté reseteando continuamente. Otra buena cosa es siempre poner un condensador de 0,1microfaradio entre los pines de la alimentación del micro y siempre lo mas cerca posible a los pines de dicho micro.
Por otra si en la simulación funciona, salvo que no se compile bien el proyecto, y si tienes bien realizadas las conexiones no entiendo porque no debe funcionar. Otra cosas seria que los tiempos no fueran exactamente los indicados o programados, necesitando ser reajustados, pero funcionar debería de funcionar.

Desconectado gg.tecnico

  • PIC12
  • **
  • Mensajes: 64
Re:Temporizador por monedas
« Respuesta #28 en: 21 de Abril de 2018, 08:39:31 »
Hola Fer_TACA, el RA3 lo he dejado como tu lo tienes en el diseño, está como interno, y el condensador tambien lo tiene colocado entre los pines de alimentacion del pic, voy a configurar RA3 como externo y le colocaré la resistencia a +5 y ya te comentaré.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3231
Re:Temporizador por monedas
« Respuesta #29 en: 21 de Abril de 2018, 08:43:46 »
Espero.
Porque en la simulación funciona. Si no hace debe ser algún tema de la configuración y/o problema del compilador.