Autor Tema: como activacion con Pulsador??  (Leído 6045 veces)

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

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
como activacion con Pulsador??
« en: 15 de Noviembre de 2008, 16:35:01 »
Hola amigos,estoy iniciandome con Niple, de momento estoy con un entrenador,secuencia de luces...pero no puedo hacer que la secuencia de puces se active con un pulsador.Podrian orientarme como se hace?? se que deve ser simple,pero no doy con ello.Gracias

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: como activacion con Pulsador??
« Respuesta #1 en: 15 de Noviembre de 2008, 18:38:18 »
Hombre puedes empezar por leer el pulsador y cuando esté activo puedes activar una salida, esperas un tiempo, rotas el bit del puerto que has activado, esperas otro tiempo, vuelves a rotar, esperar, rotar..............
F.
Todos los días se aprende algo nuevo.

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
Re: como activacion con Pulsador??
« Respuesta #2 en: 15 de Noviembre de 2008, 19:24:19 »
si,claro gracias...pero es que no se como se hace eso,no hay un tutorial pa torpes o algo...un ejemplo.o si me puedes indecar los pasos.Gracias

Desconectado Fidel Martins

  • PIC16
  • ***
  • Mensajes: 143
Re: como activacion con Pulsador??
« Respuesta #3 en: 16 de Noviembre de 2008, 14:38:43 »
eliges un pin que sera el pulsador (que puede ser pulsado para 0 o 5 volts) con esto en herramientas: comparar bit, se esta igual a 0 (cero) o a 1 (5 volts) va adelante, y si no vuelve a probar o hace otra cosa y no te olvides de ponerle un espacio de tiempo (100mS.) y comparar de nuevo para que no lea los rebotes del pulsador y te caga todo.
Seria algo asi:
probar el pulsador.
?esta el pulsador precionado?
R= si, ponga tiempo (100mS.) y compare otra vez
R= no, entonces vuelve a probar.
despues de comparado otra vez:
?esta el pulsador precionado? de veras?
R= si, entonces haga la tarea.
R= no, entonces vuelve a probar.

Saludos.
De Brasil.
Fidel.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: como activacion con Pulsador??
« Respuesta #4 en: 16 de Noviembre de 2008, 16:46:10 »
Si lo quieres realizar con Niple la cosa podria ser asi:

-Cuando abres el programa eliges el tipo de micro que vas a utilizar. Con eso se te presenta la pantalla de trabajo.
-Añades las configuraciones de los puertos que vas a utilizar como entrada y/o salida. Aquí puedes darle un nombre determinado a cada pin de entrada o salida utilizado. Esto se realiza con "Control+B"
-Añades el bloque de comprobar el estado de un pin. Como es una decision podras poner 2 bloques, una para si cumple la condicion que quieras y el otro por si no la cumple.
- Como te ha dicho el compañero Fidel añades un bloque de retardo por registro (por interrupcion si estas empezando te puede ser mas engorroso) para evitar los rebotes.
-Puedes volver a comprobar la decison incluida anteriormente (se han eliminado los rebotes).
-Si está activado el pulsador, puedes añadir otro bloque que será el de poner a 1 el Bit x (el que quieras) del registro utilizado como salida.
-Añades otro bloque de temporización
-Añades otro de rotar a la derecha o izquierda (segun te convenga) el bit X del registro utilizado como salida
-Añades otro bloque activando el bit x+1 o x-1 segun hayas empezando la activavion del bit x del registro utilizado( bit 8 o bit 0)
-A partir de ahí repite las opciones de temporizar y rotar las veces que quieras, pero ten en cuenta que esto tendra que terminar alguna vez, que puede ser cuando se desactive el pulsador, para ello tendras que testear periodicamente le estado de la entrada utilizada por el pulsador.

Si te has descargado el manual de la pagina de Niple, veras que todo esto esta indicado como realizarlo. Bien es cierto que no te indica como realizar lo que tu quieres, pero si lees con detenimiento verás como te dice como:
situar y mover un bloque, relacionarlo con otro, asignar un dato a un bit o registro, renombrar un pin de un bit o registro, crear temporizaciones, bucles,.....
En fin todo lo necesario para tu programa.
¡Ánimo que no es dificil!

F.
« Última modificación: 16 de Noviembre de 2008, 16:49:15 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
Re: como activacion con Pulsador??
« Respuesta #5 en: 08 de Octubre de 2009, 18:41:21 »
hola amigos,he vuelto a empezar con la programacion ya que lo habia dejado por falta de tiempo y aun no entiendo cm tengo que hacer para encender los led con una pulsacion y volverlo a apagar con otra pulsacion.siempre con el mismo pulsador.seria usar uno de los ejemplos de los led intermitentes pero iniciar la intermitencia y pararla con un pulsador.alquien q me lo explique con calma,paso por paso...todo claro esta con el niple.
muchas gracias

Desconectado Mike79

  • PIC12
  • **
  • Mensajes: 72
    • Mike79
Re: como activacion con Pulsador??
« Respuesta #6 en: 13 de Octubre de 2009, 14:06:04 »
No acostumbro hacer tareas,  pero... Ya me trae un poco mareado esta pregunta.

Te adjunto el código, según entendí, es lo que deseas hacer, sin usar interrupciones para que no se te haga muy complicado.

Primero, se inicializa el puerto A para lectura en RA0,  puerto B para salida en RB0, se pone el puerto a 0 y se inicializa la variable bandera.

Segundo, si RA0 es 1, es decir, se pulso RA0, entonces invierte el valor de bandera, y continua con la secuencia.
Si no, entonces continua con la secuencia.

Tercero, La secuencia, primero revisa si Bandera es 1, es decir, si puede hacer la secuencia, si es así, entonces invierte el valor e RB0 y espera 10 segundos
Si no, espera 250 Milisegundos (para evitar los rebotes) y regresa al paso 2

Este código no es precisamente lo mejor, por que mientras esta haciendo la secuencia de 10 segundos, no se da cuenta si presionaste o no el botón del pulsador, pero funcionaría bien, si el tiempo fuera de medio segundo o un segundo. Aquí lo mejor, sería ir complicando más el proyecto para obtener algo mucho más fino, que puedas interrumpir en cualquier momento.

Habría que en lugar de esperar los 10 segundos, hacer un ciclo, donde haces esperas de 100 ms ó 50 ms, y entre espera y espera compruebes el estado de RA0, si cambio el valor, entonces interrumpes el ciclo, y marcas la bandera para que deje de hacer la secuencia de luces. Si la espera es de 100 ms entonces seria repetir 100 veces el ciclo.

Prueba este codigo e intenta hacer el ciclo que te digo en lugar de la espera de 10 segundos, y si tienes dudas, pregunta de nuevo.

Saludos!
-
Mike79

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: como activacion con Pulsador??
« Respuesta #7 en: 13 de Octubre de 2009, 15:19:09 »
Amigo Mike_79,
 te me has adelantado pues tenemos mas o menos la misma pregunta en el siguiente link:

http://www.todopic.com.ar/foros/index.php?action=post;topic=25275.0;num_replies=5

Lo he relacionado para que de uno se vaya al otro y viceversa.

De todas formas amigo Mowgly lo normal es ir posteando tus avances y luego planteas tus dudas y te podemos ir corrigiendo. Es laq mejor forma de aprender pues si te lo damos realizado nunca aprenderas correctamente.

Fer.
« Última modificación: 13 de Octubre de 2009, 15:24:40 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
Re: como activacion con Pulsador??
« Respuesta #8 en: 16 de Octubre de 2009, 08:47:13 »
Muchas gracias Mike y Fer por la ayuda,ando en el trabajo en cuanto pueda experimentar espero este fin de semana les digo algo.

Saludos

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
Re: como activacion con Pulsador??
« Respuesta #9 en: 16 de Octubre de 2009, 10:30:06 »
hola de nuevo,he estado mirando un poco el diagrama de flujo y hay cosillas q no entiendo a ver si podes explicarmelas un poco mejor y disculpar mi torpeza...
la primera parte,se pone el puerto a 0 y se inicia la variable bandera... me estas diciendo que asigne valor a un registro,lo nombre como bandera?? luego el bloque verde que pone b=d"0" es una salida de datos segun el manual,escribe un Valor en un puerto,eso no lo pillo. lo podeis explicar un poco mejor,o ya de paso pasarme el archivo Npl para ir leyendo los pasos.Disculparme porfavor...estoy aun en los primeros pasas de aprendizaje y voy muy despacito...
gracias

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: como activacion con Pulsador??
« Respuesta #10 en: 16 de Octubre de 2009, 18:53:43 »
Hola mowgly:

El registro lo puesdes nombrar como quieras, si pulsas CONTROL+R se te abre la pantalla de registros puedes colocar alli el nombre que quieras como bandera, salida, contador,......
La secuencia que te han puesto Mike es:

1º declarar el puerto A como entrada.
2º el puerto B como salida
3º se lee  el puerto A(RA0)
4º SI RA0=1 se invierte el valor de bandera
5º y se envia al puerto B
6º en caso contrario se continua por el otro camino.
7º esperas tiempo
8º continuas con tu programa.......

Respecto al fichero NIPLE, para que aprendas mejor, lo ideal es que exportes el entorno(tu programa) como facil:
Archivo-exportar entorno-actual
y te pedirá donde guardarlo en fichero con extension wmf. Luego se puede adjuntar a word. Lo adjuntas aquí y te puedo ir comentando tus avances. Creeme es mejor eso que no quee te lo hagamos nosotros.

fer. :lol:
Todos los días se aprende algo nuevo.

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
Re: como activacion con Pulsador??
« Respuesta #11 en: 17 de Octubre de 2009, 05:54:20 »
Hola Fer,he hecho el diagrama de flujo y lo he compilado y probado pero parece q no funciona bien...puede que haya cometido algun error,luego paso el archivo npl a ver si le puedes hechar un vistazo q ando en el trabajo y lo tengo en casa.muchas gracias por la ayuda.

Saludos

Desconectado mowgly

  • PIC10
  • *
  • Mensajes: 17
Re: como activacion con Pulsador??
« Respuesta #12 en: 17 de Octubre de 2009, 12:56:49 »
Hola amigo he intentado hacer el diagramna de fujo al pie de la letra,pero creo que algo no funciona,lo he probado en un entrenador y el led se activa 10 segundos al pulsar ra0 pero no puedo volver a apagarlo,mira a ver fer o mike si he puesto algun dato mal...gracias

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: como activacion con Pulsador??
« Respuesta #13 en: 18 de Octubre de 2009, 17:16:24 »
Hola mowgly:
Respecto a tu programa veo algunas cosas que me parecen que no estan correctas y son por ejemplo el comparar el bit RB0 si es 1 y luego escribirle. Fijate que al inicio declaras el puerto B como salida.
Te adjunto uno nuevo,pero que quede calro que no es la mejor forma de realizar lo que quieres solo es para que entiendas un poco la secuencia:
1º Se configura el puerto a como entrada, el b como salida y se escribe un 0 en el puerto b
2º A continuacion de comprueba si el bit de RA0 es  1 en caso de que no esperamos la pulsacion y si es si esperamos un tiempo para ver si ni tiene rebotes el pulsador y si pasado ese tiempo sigue a 1 es que el pulsador esta accionado en ese caso
3º Cargamos el registro bandera con 0 será un contador y empezamos a encender y apagar el led con una cadencia de 0,5sg
4º Transcurridos  1 segundo( encendido-apagado) incrementamos el contador para ver si han pasado 10 segundos como no han pasado comprobamos si sigue pulsado RA0 si es que si vamos otra vez a la secuencia de encendido- apagado
5º Asi seguimos bien hasta que pasen los 10 segundos o que se suelte el pulsador.

Esta forma de programa es en la situacion de que en vez de ser un pulsador fuese un interruptor.
Para un pulsador debes de crear otro registro donde guardar el valor del estado del pulsador, siempre despues de esperar un tiempo para evitar los rebotes del pulsador. Despues deberias de insertar un bloque despues de incrementar el contador, por ejemplo, para comprobar el estado y dependiendo de su estado apagar el led o seguir con la secuencia.

Com ya te dije al principio, no es la mejor forma de realizarlo. Lo ideal seria realizarlo con interrupciones, pero eso te quedará mas adelante. Solo te he puesto el programa para que vayas entendiendolo y la mejor forma es de realizarla con interruptor y no con pulsador, pero eso ya lo añades tu, pruebas y vamos corrijiendo. Ya que de lo que se trata es de aprender. ¿Te parece?
Adjunto el fichero.

saludos
Fer.
« Última modificación: 18 de Octubre de 2009, 17:22:01 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Mike79

  • PIC12
  • **
  • Mensajes: 72
    • Mike79
Re: como activacion con Pulsador??
« Respuesta #14 en: 19 de Octubre de 2009, 15:05:19 »
Voy a citar lo que puse anteriormente:

> Este código no es precisamente lo mejor, por que mientras esta haciendo la secuencia de 10 segundos, no se da cuenta si presionaste o no el botón del pulsador, pero
> funcionaría bien, si el tiempo fuera de medio segundo o un segundo. Aquí lo mejor, sería ir complicando más el proyecto para obtener algo mucho más fino, que puedas
> interrumpir en cualquier momento.

Yo invite a que se redujera el tiempo a medio segundo, o mejor aun, cambiar la forma en que se presiona el botón para que funcionara correctamente.
Por eso, no te funciona bien en el simulador. La idea era que tuvieras una idea de como van las cosas.

Fer_TACA, ha realizado otro ejemplo, donde ya considera el rebote del pulsador, pero según entiendo, invita a que sea mejor un interruptor, mientras el interruptor vale uno, hace una secuencia de prender y apagar un led con un retardo de 0.5 seg, lo hace durante 10 segundos y luego para, si el interruptor lo cambias a 0, en cualquier momento, también debe parar. Esto era un poco diferente a lo que habia entendido, pero creo que también te funcionaria bien.

Comenta como te fúe y si no, pues seguimos viendo tu ejemplo.
Saludos!
-
Mike79