Autor Tema: Orientacion programa.  (Leído 5071 veces)

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

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Orientacion programa.
« en: 20 de Agosto de 2014, 06:22:05 »
Hola, necesito una orientacion o algun ejemplo, explico:
Estoy haciendo una maquina que llevará un motor y un teclado, lo que quiero conseguir es marcar un numero en el teclado de 1 a 3 cifras emplan, "12" y que el motor de 12 vueltas, lo que no se hacer es como leer mas de una cifra, como juntar las 3... o las dos, mi idea es meter el numero y poner un boton a mayores con la funcion intro, ejemplo, pondria el 30, se mantendria a la espera y despues pulsaria intro para procesar ese numero. A ver si me ayudais.

Saludos.

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Re: Orientacion programa.
« Respuesta #1 en: 20 de Agosto de 2014, 09:46:39 »
Por ahora solo tengo esto, me gustaria que al poner un numero por ejemplo 30 esperara hasta darle a okey, cuando se pulse que empiece una cuenta atras hasta cero, porsuepuesto habrá un sensor o un final de carrera para contar las vueltas del motor

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Orientacion programa.
« Respuesta #2 en: 23 de Agosto de 2014, 11:23:43 »
Estaba mirando tu proyecto, no se si solucionaste tu desarrollo del código, pero lo que veo es solo la lectura de teclas. Para seguir debes tener un "contador de vueltas" y un sensor que las cuentes (pulsador) para tener 2 valores a comparar. Tambien debes ver como irás formando el valor que introduces por el teclado para valores de más de 1 cifra, pues si como me parece lo utilizarás para medir longitudes de seguro no seran todas pequeñas. No comentas cual sería el maximo esperado o necesario. Si puedes dar más detalles de lo que deseas tal vez podamos brindar ayuda más eficiente. Un abrazo
- Santiago -

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Re: Orientacion programa.
« Respuesta #3 en: 24 de Agosto de 2014, 11:36:55 »
Estaba mirando tu proyecto, no se si solucionaste tu desarrollo del código, pero lo que veo es solo la lectura de teclas. Para seguir debes tener un "contador de vueltas" y un sensor que las cuentes (pulsador) para tener 2 valores a comparar. Tambien debes ver como irás formando el valor que introduces por el teclado para valores de más de 1 cifra, pues si como me parece lo utilizarás para medir longitudes de seguro no seran todas pequeñas. No comentas cual sería el maximo esperado o necesario. Si puedes dar más detalles de lo que deseas tal vez podamos brindar ayuda más eficiente. Un abrazo

Ahora lo tengo un poco más desarrollado. La maquina tiene que envolver cable, yo le marco los metros que son, no más de 1000 y al darle a intro empieza a contar hasta que llegue a los metros que tiene marcados en el teclado, el problema que tengo es que no se compararlos, es decir, cuando pulso "#"(intro) entra en el bucle del contador, entonces se va incrementado a medida que el final de carrera exterior cuenta, entonces quiero que salga de este bucle cuando las vueltas contadas sean igual al numero introducido por el teclado, me doy cuenta de que tal y como lo tengo el valor que lleva "key" es el de la "#" no el que tiene escrito en el teclado... estoy aquí estancado, como puedo hacer que salga del dicho bucle cuando sean iguales, la variable F_carrera(sensor, boton) y los numeros escritos en el teclado?

Muchas, muchas gracias por tu ayuda y tu tiempo  :)
« Última modificación: 24 de Agosto de 2014, 11:39:09 por harrisón »

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Orientacion programa.
« Respuesta #4 en: 24 de Agosto de 2014, 21:22:09 »
Lo primero que te recomiendo es que crees rutinas que cumplan partes de la problematica, la mejor forma de encarar algo complejo es dividirlo en rutinas más simples. Veamos si te puedo mostrar lo que digo haciendo algo. De todas maneras te comento que el modo de salir del bucle puede ser: mientras registro_1 <> registro_2, lo que hará que el bucle se cumpla desde 0 hasta el valor del registro 2 que será el que contenga las vueltas que marcaste por teclado. Espero que me entiendas y te sirva.
- Santiago -

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Re: Orientacion programa.
« Respuesta #5 en: 24 de Agosto de 2014, 22:41:11 »
Lo primero que te recomiendo es que crees rutinas que cumplan partes de la problematica, la mejor forma de encarar algo complejo es dividirlo en rutinas más simples. Veamos si te puedo mostrar lo que digo haciendo algo. De todas maneras te comento que el modo de salir del bucle puede ser: mientras registro_1 <> registro_2, lo que hará que el bucle se cumpla desde 0 hasta el valor del registro 2 que será el que contenga las vueltas que marcaste por teclado. Espero que me entiendas y te sirva.

Lo entiendo pero lo que no consigo entender es que variable poner en registro2, compararia F_carrera<>registro2 pero como pongo por ejemplo el numero 100 en registro 2?

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Orientacion programa.
« Respuesta #6 en: 24 de Agosto de 2014, 22:47:36 »
Solo lo alcanzo a encarar sin mucho estudio, te paso lo que he hecho y quiza lo puedas terminar. Basicamente ingresa una cantidad por teclado, ejecuta un conteo de pulsos del switch hasta completar el conteo y resetea los valores al inicial. Lo hice por inercia con un 628a por lo que deberás migrarlo al que quieras. Un abrazo
- Santiago -

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Re: Orientacion programa.
« Respuesta #7 en: 25 de Agosto de 2014, 10:13:52 »
Hola, acabo de probar tu programa en el mio, copié todas las variables y todo pero no acabo de entender y simulandolo creo que no funciona... a ver si tu puedes ver el fallo. gracias por tu tiempo :)

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Orientacion programa.
« Respuesta #8 en: 25 de Agosto de 2014, 13:08:17 »
Mi propuesta no esta terminada y es solo para que veas el como podría ser, te lo comenté.

El programa propuesto:
En un bucle que sale si Tecla=11
Se lee la tecla y
-si es 0 a 9 entra en un switch donde se cuenta las teclas validas(toma 4 unicamente)
-si es 10 borra el ultimo valor ingresado y resta 1 al contador de teclas
-si es 11 sale del bucle y continúa con el siguiente paso

Se llama a la macro "contando" que en un bucle del que sale al igualar vueltas a contador
-pone a 1 la salida (activa el motor)
-cuenta las vueltas que da el carrete o la polea de longitud
-si contador = vueltas pone a 0 la salida (desactiva el motor) y sale

Se llama la macro reseteo que vuelve al estado inicial todos los registros y con ello queda leyendo el teclado hasta que se ingrese un nuevo valor

Hasta acá lo que te propuse como solución, si puedo lo termino, pero no te prometo que sea rapido. Un abrazo
- Santiago -

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Re: Orientacion programa.
« Respuesta #9 en: 25 de Agosto de 2014, 16:57:14 »
Mi propuesta no esta terminada y es solo para que veas el como podría ser, te lo comenté.

El programa propuesto:
En un bucle que sale si Tecla=11
Se lee la tecla y
-si es 0 a 9 entra en un switch donde se cuenta las teclas validas(toma 4 unicamente)
-si es 10 borra el ultimo valor ingresado y resta 1 al contador de teclas
-si es 11 sale del bucle y continúa con el siguiente paso

Se llama a la macro "contando" que en un bucle del que sale al igualar vueltas a contador
-pone a 1 la salida (activa el motor)
-cuenta las vueltas que da el carrete o la polea de longitud
-si contador = vueltas pone a 0 la salida (desactiva el motor) y sale

Se llama la macro reseteo que vuelve al estado inicial todos los registros y con ello queda leyendo el teclado hasta que se ingrese un nuevo valor

Hasta acá lo que te propuse como solución, si puedo lo termino, pero no te prometo que sea rapido. Un abrazo


Okey, voy a intentar entenderlo a ver que puedo hacer, de todos modos si me puedes pasar algo funcionando  te lo agradeceria, de todos modos muchas pero que muchas gracias por tu tiempo :) saludos

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Orientacion programa.
« Respuesta #10 en: 02 de Septiembre de 2014, 20:55:21 »
No se cuanto has avanzado, espero que mucho o todo, pero para no dejar inconcluso el tema subo algo más avanzado que el anterior. Solo se ingresan 4 cifras (0018 para 18), con * borra cifras anteriores, con # acepta el valor escrito y pasa aejecutar el conteo habilitando si fuera necesario un motor (representado por el led) e ingresando pulsos del sensor (representado por el pulsador) y mostrando la cantidad de lecturas realizadas. Cuando iguala desconecta el led y ejecuta un reset (pone a valor inicial todos los registro) y vuelve al principio esperando un nuevo ingreso y conteo a realizar. Un abrazo
- Santiago -

Desconectado harrisón

  • PIC10
  • *
  • Mensajes: 12
Re: Orientacion programa.
« Respuesta #11 en: 18 de Septiembre de 2014, 15:43:25 »
Avance bastante, en breve le echaré un ojo al tuyo. Muuuuuuchas graciasssss :)

saludos