Autor Tema: Encendido y apagado de led con sensor Pir.  (Leído 4934 veces)

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

Desconectado soportemyf

  • PIC10
  • *
  • Mensajes: 20
Encendido y apagado de led con sensor Pir.
« en: 28 de Julio de 2016, 08:53:39 »
Hola Gente linda de Todopic.
Me presento, soy Fabián, estoy con esto de la programación de Pic en Niple hace un año, pero solo con rutinas simples para secuenciales y destellos de led, simples nada complicado.

Hoy un amigo de toda la vida me pidio que le coloque led en la escalera de su casa, todo bien 60cm de tira led debajo de la uña de cada escalon un total de 24 escalones.

Ok hasta aca todo bien, el tema es que me pide que se enciendan o apaguen según el sentido de circulación, ok si sube encienden asendentes y apagan asendentes, si por lo contrario bajan, encienden desendentes y apagan desendentes, bien esto no hay problema ya que realizo 4 subrutina, 1 enciende asendente, 2 apaga asendente, 3 enciende desendente, 4 apaga desendente.

Ahora bien, como indico a niple que verifique que sensor se activo para que realize tal o cual de estas 4 subrutinas, estuve viendo como funciona la funcion SI pero no me doy cuenta ya que eso nunca lo use de que manera interconectarlo con los sensores y las subrutinas.

Cual es la idea? 1 la persona se aproxima a la escalera y activa el sensor 1 (RB0 = 1 (como entrada)), el programa chequea si el sensor 2 esta en 0 ó en 1, si esta en 0? ejecuta la rutina 1 (encendido asendente) hasta el último puerto y permanece encendido hasta que el sensor 2 se interrumpe y coloca un 1, ahora se verifica si el sensor 1 esta en 0 ó 1, si esta en 1, ejecuta la rutina 2 (apagado asendente) y pone el sensor 1 y 2 en 0 y termina el programa, es decir queda en reposo.
Cuando alguien baja hace lo mismo pero a la inversa y ejecuta la subrutina3 y luego la 4.
Ahora bien si alguien sube o baja pero no finaliza el recorrido porque se olvido algo y vuelve Ej: actiba sensor 1 se encienden los led, vuelve activar el sensor 1 deberian apagarse los led y el programa volver a reposo.

Yo me imagino todo lo que debe hacer pero no puedo plasmarlo en Niple, no me sale no encuentro la vuelta, obvio porque no soy un experto en programación y me faltan muchos conocimientos y lo admito, es por eso si alguien me puede ayudar, en este caso para poder entenderlo necesitaría un diagrama de flujo directamente en Niple o en imagen para entender de que se trata y como se hace, obvio que no es mi intención que nadie me realize el trabajo solo necesito un ejemplo de lo que necesito.

Desde ya mil gracias de antemano y espero se entienda mi consulta y me puedan ayudar.

Un cordial saludo.
Fabián.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #1 en: 28 de Julio de 2016, 12:07:47 »
Te contesté en otro sitio, ¿lo intestaste? Conecto los sensores a dos interrupciones y al activarse cada una verifico un bit o un registro asociado al otro sensor, suponiendo que la interrupción ponga a 1 el bit asociado puede ocurrir: - Que esté en 1 indicando que ya fue activado (pasó una persona) o que esté en 0 (aún no pasó nadie), si 1 lo pongo a 0 y apago/prendo según corresponda, si 0 leo el asociado al sensor activado, si 1 no hago nada, si 0 llevo a 1 el mismo y prendo/apago dependiendo de lo que indique ese sensor. Bits "arriba" y "abajo" para ejemplo.

Luz durante transito por la escalera.
Activa "abajo"=1 --> lee "arriba" --> si 0 luces ascendente, si 1 apaga.
Activa "arriba"=1 --> lee "abajo" --> si 0 luces descendente, si 1 apaga.

Por tiempo:
Activa "abajo"=1 --> lee "arriba" --> si 0--> luces ascendente-->tiempo-->apaga; si 1 nada.
Activa "arriba"=1 --> lee "abajo" --> si 0--> luces descendente-->tiempo-->apaga; si 1 nada.
Con rutinas de comparación (1) y de encendido (2) haces todo.
- Santiago -

Desconectado soportemyf

  • PIC10
  • *
  • Mensajes: 20
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #2 en: 28 de Julio de 2016, 13:03:15 »
Hola Lucegiar:

Gracias por la respuesta del otro sitio, si lo lei e intente hacerlo pero nada a noche ya era muy tarde asi que hoy seguire probando, entiendo perfecto lo que me indicas pero con los graficos del diagrama de flujo que se arma en el Niple no me doy cuenta donde colocar cada cosa explicada en palabras, perdon por lo burro, voy a seguir intentando y ver si me sale, lmentablemente todos los diagramas de flujo que encontre con distintas condiciones y función si, no me aclaran nada ya que son ej de si esto pasa abre esto delocontrario esto otro y ahi terminan.
Te pido disculpas por buscar mas ayuda por otros foros no es que no valoro tu ayuda alcontrario, tu ayuda me aclaro muchas cosas solo que aun no lo digiero como para darme cuenta como disponer de las funciones y si debo escribir dentro de mapa de registro no se que poner o donde.
Un cordial saludo. y mil gracias.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #3 en: 31 de Julio de 2016, 11:59:07 »
No hay problema. Hacé 2 rutinas de usuario, por ejemplo "ascendente" y "descendente", en cada una armás la secuencia de encendido según sea su sentido de avance. En la rutina principal no haces nada, solo inicializar y declarar lo necesario y comparar un registro, "acción" por ejemplo, constantemente para determinar que se debe hacer según su valor. Por otro lado debes dentro de las interrupciones hacer las comparaciones de los correspondientes bits para dar valor al registro "accion" ( si el pic solo está decicado a esta taréa podés llamar las rutinas dentro de estas, lo cual me gusta para evitar en parte las malas lecturas, y se mantiene dentro de la interrupción mientras ejecuta el código de la rutina llamada. Podés tambien no usar interrupciones si en la principal leés los pines asociados a sensores constantemente. En todos los casos es necesario que implementes modos de evitar falsas lecturas o anti rebotes, ejp: 1-leo-->si negativo=leo sgte, si positivo doy 10 ms y vuelvo a leer, si negativo leo sgte, si positivo comparo el asociado al otro sensor y llamo o no la rutina correspondiente, al salir de ella vuelvo a la principal.
Espero haber sido más claro, si no te pido disculpas por lo mal explicado. Subí lo que hayas hecho y se corrige y se te puede ayudar especificamente en lo que tengas el problema. Un abrazo.

Nota: todos los proyectos se comienzan lapiz y papel en mano, aún cuando creas tener claro el mismo, y se desarrolla el algoritmo corrigiendo los problamas que se van encontrando al trazar el código, es mejor y no una perdida de tiempo pues peor es encontrar errores de código en el programa una vez iniciado, se suelen repetir y no encontrarlos.
« Última modificación: 31 de Julio de 2016, 12:05:02 por lucegiar2005 »
- Santiago -

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #4 en: 31 de Julio de 2016, 15:49:20 »
Te dejo una muestra para que veas si es lo que quieres hacer. Los tiempos y otros parametros se editan adaptandolo a la necesidad. Hay más formas de hacerlo, probálas.

http://www.4shared.com/rar/c4__Uppsce/Luces.html
Descargalo desde este link
« Última modificación: 01 de Agosto de 2016, 00:32:18 por lucegiar2005 »
- Santiago -

Desconectado soportemyf

  • PIC10
  • *
  • Mensajes: 20
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #5 en: 02 de Agosto de 2016, 14:00:02 »
Hola Lucegiar:

Todo lo anterior que me comentastes lo realise, en proteus realise las pruevas solo con 5 pines y 2 pulsadores no me funciono, luego lo realize con la función SI, si rb0=1 enciende, si rb1=1 apaga y coloca rb0 y rb1 en 0, no lo hace los deja en 1 aunque ya el pulsador no esta pulsado.

Hoy cuando llego al taller pruebo el archivo que me mandastes y te comento.

Desde ya mil gracias.
Un cordial saludo.

Desconectado soportemyf

  • PIC10
  • *
  • Mensajes: 20
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #6 en: 04 de Agosto de 2016, 20:06:49 »
Amigo Lucegiar:

Estuve estudiando tu guia y no me mates pero el programa principal lo entendi a medias y las subrutinas no las entendi, se nota que me falta Niple y codigos de programación ufff que dificil es programar, igual no me rindo trato de ver como es y como funciona.

Te dejo el link de lo que yo hice, quizas por falta de conocimientos no esta bien, pero enciende al pulsar el switch 1 y apaga al pulsar el switch 2 pero no pone en 0 ninguno de los 2, hay una parte en la cual dice subrutina 5 que lo puse como para decir bueno subo pero no llego al final porque se me olvido algo y bajo activo nuevamente el sensor de PB y apaga todo directamente, pero no se si esto que te subo se programa así como yo lo hice.
Link: http://www.4shared.com/rar/fpeq5APece/Luz_Escalera.html

Bueno mil gracias y a seguir estudiando, dicen que dando tumbos se aprende jajaja.

A, si entiendo todo lo que me explicas es similar a como yo me lo explico y planteo, solo que no se como llevarlo a Niple, duro el tipo jajaja.

Un abrazo y mil gracias.
Marcelo.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #7 en: 05 de Agosto de 2016, 01:47:14 »
Lo que ves en la rutina es solo escribir el puerto, los valores escritos son los que corresponden a los leds que deseo encender. En cuanto a tu programa lo miré y está bien, pero recuerda que puede ganarle la rutina al usuario, es decir que tarde menos en quedar apagado que él en subir o bajar, y lo contrario tambien, es malo pues queda sin iluminación en parte del transito. Digo esto porque me parece ver que apaga secuencialmente cuando llega a completar el encendido. La rutina 5 es un reset y es útil. Buscando verás que hay multiples formas de llegar al mismo resultado, todos validos, más o menos optimizados pero validos.
- Santiago -

Desconectado soportemyf

  • PIC10
  • *
  • Mensajes: 20
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #8 en: 05 de Agosto de 2016, 19:34:40 »
Ok, si tengo que ver todas esas cuestiones, gracias por los acotes.

en el que yo arme, bueno solo puse un par de puertos para no programar los 22 asi poder ver si funcionaba como yo queria, grabe el pic arme todo en el protoboard y funciona, es decir pulso el switch 1 y encienden ascendentes y quedan encendidos no se apagan hasta que pulso el switch 2 y recien ahi apagan ascendentes, es como que la persona llego a la planta alta y lo detecto el sensor 2, el tiempo que tardan en prender y apagar en la secuencia puede ser mas o menos eso lo tengo que ver una vez instalado en el real y se corrigen los tiempos.
Ahora lo que no entiendo es porque despues de finalizar ambas rutinas no me vuelve a dejar esas 2 entradas en 0 para poder probar el sentido contrario, eso lo arme con un poco de intuición sin saber, ya que no tengo experiencia con muchas cuestiones en programación, estuve mirando varios cursos de Niple en video pero son tan densos que me cansan y termino no entendiendo nada, yo fui profesor de institutos de reparador y armador de PC, y te digo que en la segunda clase ya sabian todo los alumnos porque tengo una manera de explicar las cosas tan didacticas y practicas que las entiende cualquier persona de hecho me lo decian los alumnos y es por eso que cuando veo un curso o voy a alguno veo que lo hacen tan denso y pesado que al final terminas no entendiendo nada porque lo enrriedan tanto que quedas en blanco jajaja, y la verdad que esto de programar me encanta porque soy medio inventor o sea se me ocurre algo y lotermino haciendo y esto de la programación me vuela la cabeza porque me da muchas ideas para realizar cosas, pero me enoja no poder entender el programa.

Te agradezco la mano que me das y el tiempo que de seguro no te sobra.

Mil gracias y voy a seguir luchando por hacerlo funcionar.

Un abrazo.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #9 en: 05 de Agosto de 2016, 21:21:31 »
Habría que ver bien, pero lo que no me gusta de ese programa es, fundamentalmente, que escribís los bits de entrada de sensores. Se puede dar estados que lleguen a dañar el pin, caso de que el sensor marque 1 y lo pongas a 0, o lo pongas a 1 y el sensor cambie a 1, entonces la sñal se enmascararía con el estado del pin. Yo declaro un bit y lo cambiop a 1 si la entrada detectó el paso, al solo efecto de indicar que ocurrió una detección, pero sobre el pin solo lo leo y decido. Si puedo te hago algo de eso para que me entiendas.
- Santiago -

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #10 en: 05 de Agosto de 2016, 23:30:08 »
Te dejo unas variantes de lo que estás queriendo hacer, fijate y comentame si lo entendés o qué no entendés.
- Santiago -

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #11 en: 06 de Agosto de 2016, 09:30:43 »
Upssss, ¿y el archivo? Ca taaaaa.


* Luces.zip
(21.35 kB - descargado 283 veces)
- Santiago -

Desconectado soportemyf

  • PIC10
  • *
  • Mensajes: 20
Re:Encendido y apagado de led con sensor Pir.
« Respuesta #12 en: 15 de Agosto de 2016, 10:11:55 »
Perdon pero me re colgue con mis trabajos y no agradeci la ayuda brindada.
Gracias Lucegira, lo tuyo fu de gran ayuda, aun lo tengo en desarrollo, por falta de tiempo no lo he terminado de ajustar a mis necesidades.
Gracias por la ayuda brindada y por tu tiempo.
Me sirvio tu desarrollo una granguia para trabajar.

Un cordial saludo.
Marcelo.