Autor Tema: LCD y Botón  (Leído 6465 veces)

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

Desconectado Kspids

  • PIC16
  • ***
  • Mensajes: 192
LCD y Botón
« en: 21 de Marzo de 2019, 06:34:45 »
Buenas a todos, tengo una duda que no he podido resolver. No veo nada por internet por lo que me toca molestarles e intentar que me ayuden.

Pretendo conseguir a través de FlowCode (v6) que en el LCD 16x2 aparezca un mensaje y cuando pulso un botón, el mensaje cambie a otro distinto. Hasta el momento lo he he conseguido es que mientras pulso el botón se queda el segundo mensaje pero una vez que suelto, vuelve al primero. ¿Cómo se tendría que hacer para que en un solo pulso del botón se quede el segundo mensaje? Algún ejemplo? o pantallazo para ver esa transición??

Espero vuestra ayuda. Gracias!
(La idea es conseguir hacerme un menú de opciones.)

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #1 en: 21 de Marzo de 2019, 07:25:20 »
Lo ideal para tu caso  creo que lo mejor es que declarases una variable para guardar el estado del pulsador. Me explico cada vez que detecte una pulsación se incremente un valor esa variable, después compruebas su valor y dependiendo de cual esa, así hace una cosa u otra.

No obstante para ayudarte mejor seria conveniente revisar lo realizado hasta el momento y de este modo la ayuda podrá ser más eficaz.

F.   
Todos los días se aprende algo nuevo.

Desconectado Kspids

  • PIC16
  • ***
  • Mensajes: 192
Re:LCD y Botón
« Respuesta #2 en: 21 de Marzo de 2019, 07:55:43 »
Aquí os paso lo que tengo.
https://drive.google.com/open?id=1XZ9hQn-oguCxl7TwDJ03UsIj8ZM1-Cqe

Lo que me has indicado lo he intentado hacer pero parece ser que algo falla...
A2 es un botón al que le he asignado la variable X
A3 es otro botón al que le he asignado la variable Y

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #3 en: 21 de Marzo de 2019, 15:22:57 »
He revisado lo que has adjuntado y he realizado algunos cambio.
Mira a ver si es eso más o menos lo que pretendes.

F.
Todos los días se aprende algo nuevo.

Desconectado Kspids

  • PIC16
  • ***
  • Mensajes: 192
Re:LCD y Botón
« Respuesta #4 en: 22 de Marzo de 2019, 09:25:41 »
Hola! Gracias por el archivo.

El problema que veo es que sale de la pantalla y vuelve a la inicial...

Esto es lo que he avanzado pero no consigo que pille a tiempo el pulso del teclado ni que se quede en la pantalla a la que se ha llegado...

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #5 en: 22 de Marzo de 2019, 11:28:31 »
En el fichero que te adjunte se queda en la pantalla inicial y solo cuando acciona el pulsador cambia(estado=1), a la pantalla siguiente y no sale de ella hasta que no se vuelve a pulsar (estado=2). Y así sucesivamente.
Solo puse 2 casos, en principio puedes colocar hasta 10.
Al desconocer en profundidad lo que pretendes no puedo hacer más.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #6 en: 22 de Marzo de 2019, 11:31:24 »
Más tarde reviso lo nuevo que ha adjuntado.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #7 en: 22 de Marzo de 2019, 18:41:53 »
Hola de nuevo,
Acabo de echar un vistazo a lo ultimo adjuntado. He corregido/cambiado un par de cosas. No puedo hacer más sin saber la lógica de los botones, pero si tengo que decirte algunas cuestiones generales:

- En algunos puntos estas incrementando las variables : Estado_Menu y Estado_Intro pero después no las utilizas.

- Después de la primera detección del botón derecha sale el mensaje "t_max bomba" y después vuelves a leer el mismo pulsador, se incrementa la variable "Estado_derecha" y dependiendo del valor que en buena lógica sería de 2, en el case switch se va por la parte de indicar el mensaje de "Mantenimiento". Esto es así pero si no accionas por segunda vez el pulsador de derecha, su variable vale 1 el programa va por el camino del mensaje de "Configuración". Pero aquí tienes 2 problemas más que se dan en las 2 ramas del switch:
a.-Compruebas de nuevo si esta accionado el pulsador "Intro" y si no está el programa salta automáticamente al inicio del mismo, es decir al inicio del "While". Error, deberías ir a algún otro sitio, ya que si no, vuelves al punto donde inicialmente sacas el mensaje de "INFORMACION"
b.-Si accionas el pulsador "Intro" vas a sacar otros mensajes y al finalizar te vuelve a pasar lo mismo que en el punto 1.

- Deberías intentar no colocar muchos saltos(rupturas de secuencia) del programa. Esto no es bueno en programación.

- Debes de tratar de realizar cosas pequeñas, aglutinarlas en macros que hagan pequeñas funciones y de este modo tu programa sería mas inteligible. Sobre todo estas deberías de colocarlas en la parte del main.


F.
« Última modificación: 22 de Marzo de 2019, 18:44:53 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #8 en: 23 de Marzo de 2019, 11:08:34 »
Una cosa mas, cuando crees  variables para contar, no Debra crearlas como  booleanas.Estas solo pueden tener 2 valores= 1 o 0.
Al menos  deben ser tipo byte. Lo cambie en el adjunto anterior.

F.
Todos los días se aprende algo nuevo.

Desconectado Kspids

  • PIC16
  • ***
  • Mensajes: 192
Re:LCD y Botón
« Respuesta #9 en: 25 de Marzo de 2019, 05:55:49 »
Gracias!
Dentro de FlowCode sí se queda en la pantalla seleccionada pero en proteus no se queda. Aparece por ejemplo INFORMACIÓN pero enseguida regresa a la pantalla inicial.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:LCD y Botón
« Respuesta #10 en: 25 de Marzo de 2019, 06:43:42 »
Pues no debería ya que en el código no hay nada que le haga regresar atrás. Es más mientras no se accione ningún otro pulsador se queda en ese estado indefinidamente.

Permíteme una pregunta ¿por que utilizar Proteus para simular el programa cuando lo puedes simular perfectamente en Flowcode?

F.
Todos los días se aprende algo nuevo.

Desconectado Kspids

  • PIC16
  • ***
  • Mensajes: 192
Re:LCD y Botón
« Respuesta #11 en: 25 de Marzo de 2019, 10:18:43 »
Simple curiosidad. Se que Proteus falla pero hasta el momento no me ha ocurrido para proyectos pequeños. Por eso he querido probarlo ahí además de en FlowCode ya que como ves, FlowCode es nuevo para mi, jeje.

Compraré un micro de prueba para ver relamente lo que hace. Gracias Fer_TACA!