Autor Tema: Como convertir señal pulsante en continua?  (Leído 9895 veces)

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

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Como convertir señal pulsante en continua?
« en: 03 de Agosto de 2010, 15:23:55 »
Hola! Otra vez yo con una pregunta  :mrgreen:
El tema es que tengo un receptor IR a 30Khz, y un led IR pulsando a 30Khz. Ambos estan "mirando" hacia arriba y cuando pongo algo (una mano por ej) encima de estos el receptor recibe la luz IR reflejada y uno de sus pines se pone a CERO, mientras que sino, esta a UNO.
Hasta ahora todo normal. El tema es que cuando pongo la mano, o un objeto demasiado lejos el receptor no lo detecta (perfecto), pero si lo pongo a una distancia "media" (una franja de un par de centimetros), el receptor me envia una señal pulsante que oscila entre los 200 y los 1000Hz y es de aproximadamente un 25% de duty.
Ya digo, son un par de centimetros en el aire en los que el receptor me da una señal que no es deseada.
Yo tengo un pic que efectua una accion cuando recibiendo la señal, pero lo que no quiero es que la señal se dispare varias veces.
Como puedo hacer para interpretar esa señal como UNO o CERO? me da lo mismo cual de los dos, lo que no quiero es que sea a medias.
Por supuesto busco la manera mas simple de solucionarlo: por soft... pero no se me ocurre como  :D
Si no encuentro solucion por codigo tendre que hacerlo de manera analogica...
Acepto ayuda digital y analogica  :P
Salu2!
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Como convertir señal pulsante en continua?
« Respuesta #1 en: 03 de Agosto de 2010, 15:42:13 »
yo hice algo parecido a lo que tienes para el robot de sumo, y la solución digital creo es la mas efectiva, aunque la analógica tambien puede andar. Para la analogica se me ocurre que puedes usar un filtro con una resitencia y un condensador (los entendidos que me digan si es pasa bajo o pasa alto  :oops:) y la salida a un comparador con un set.

Para la parte digital, yo lo que hago es algo así como un pseudo fuzzy logic.
Los receptores trabajan con una modulación de los 30khz, dependiendo del receptor, entre los 400 y los 800us, es decir, tienes que enviarle un tren de pulsos en 30khz durante 600us y luego apagar el emisor, porque sino se satura.
Entonces lo que hago es enviar 30 pulsos de 600us y contar las veces que recibo rebote del objeto.
Defino un umbral de por ejemplo 15 pulsos detectados y si la cuenta es superior la doy como buena, sino la descarto.

Lo que puedes hacer tambien para mejorar el uso del emisor es achicar el ancho del pulso, es decir, achicas el ancho de los 30khz, pero aumentas la corriente, para esto deberias ver la hoja del dato del emisor para no pasarlo de la corriente. Esto me ha resultado y aumenté el rango.

Luego con estos valores, de la corriente y del umbral puedes jugar asta encontrar lo que necesitas.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Como convertir señal pulsante en continua?
« Respuesta #2 en: 03 de Agosto de 2010, 16:07:37 »
Gracias willy!
Lo de enviar "tramas" lo hacia antes, cuando el emisor y el receptor estaban enfrentados, porque es verdad que se satura el emisor. Pero ahora que estan en paralelo, el receptor no entra en saturacion a menos que haya un objeto que haga rebotar la luz IR. Y si ese es el caso me da igual que sature, ya que antes me habra dado la señal, y no deberia volver a activarse por 3 o 5 segundos.
Aun jugando con el ancho del pulso y la intensidad, siempre habra una franja en donde el receptor me dara esa dichosa señal pulsante.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado fantabuloso

  • PIC10
  • *
  • Mensajes: 24
Re: Como convertir señal pulsante en continua?
« Respuesta #3 en: 03 de Agosto de 2010, 16:32:25 »
Podrias utilizar un decodificador de tonos como el LM567, si mal no recuerdo, habia un proyecto en pablin (hace varios años de esto ya), en las hojas de datos también vas a encontrar un circuito de ejemplo.
Saludos

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Como convertir señal pulsante en continua?
« Respuesta #4 en: 03 de Agosto de 2010, 17:29:49 »
Hola, yo sólo pondría una resistencia en serie a la salida del receptor y después un capacitor de 470uF en paralelo a la entrada del pic. Esto hará que la señal cuadrada sea casi lineal.

Calcula la resistencia en base de cuánta corriente puede entregar el receptor IR, sólo es para protegerlo ante el corto circuito que el capacitor generará cuando está descargado.

La desventaja... el capacitor se quedará cargado por un tiempo. Si es mucho, puedes bajar su valor a 10uF.

Como cuentas con osciloscopio, puedes jugar con este valor sin tener que hacer cálculos matemáticos.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Como convertir señal pulsante en continua?
« Respuesta #5 en: 03 de Agosto de 2010, 17:50:06 »
Marttyn, no se si alcansaste a comprender mi idea, por las dudas aqui te dejo el enlace de donde me basé yo para hacer mis sensores de proximidad.
http://www.seattlerobotics.org/encoder/200112/richk.htm

Fijate que puedes simplificar un poco el tema de los circuitos con los LM555, yo lo he simplificado todo en un 16F84.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Como convertir señal pulsante en continua?
« Respuesta #6 en: 03 de Agosto de 2010, 21:16:57 »
Marttyn, no se si alcansaste a comprender mi idea, por las dudas aqui te dejo el enlace de donde me basé yo para hacer mis sensores de proximidad.
http://www.seattlerobotics.org/encoder/200112/richk.htm

Fijate que puedes simplificar un poco el tema de los circuitos con los LM555, yo lo he simplificado todo en un 16F84.

Willy, entendi perfectamente lo que me comentas, pero el sensor ya esta hecho y en principio "no puedo" modificarle nada. solo puedo modificar la entrada de la señal al PIC, y aun asi preferiria no hacerlo ya que la placa ya esta hecha, y por eso quiero hacerlo por codigo y no por hardware.

Mig, hacer eso no convertira mi señal digital en una señal analogica? es decir, no convertire la señal pulsante en un valor de voltaje entre 0 y 5v segun el duty de la señal?
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Como convertir señal pulsante en continua?
« Respuesta #7 en: 03 de Agosto de 2010, 21:31:22 »
Hola Marttyn, no se si ya estas empleando interrupciones... ,o si detectas la señal/no señal por interrupcion o por pooling...
Suponiendo que lees la entrada  por pooling, para el peor de los casos, que la frecuencia fuera de 200Hz, tendiamos un periodo de 0.005 seg (5mseg)
Entonces yo colocaria un "contador de espera", y una demora de 20 microsegundos...
Leeria el estado del pin, es uno , es cero, llamo a la DEMORA, y luego decremento un contador (que estaria en 255)...
si este contador llega a cero (luego de llamarlo 255 veces, ya habran transcurrido 5,1 milisegundos... es decir no hay señal), coloca salida a cero
Si llega señal, coloco nuevamente a cero el contador...y activo la salida en uno
Se entiende?
Saludos!

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Como convertir señal pulsante en continua?
« Respuesta #8 en: 03 de Agosto de 2010, 22:26:53 »
Creería que aplicando lo que indica Santiago funcionaria, es un filtro pasabajos, y con 25% de ciclo de trabajo no alcanzaría para generar la tensión adecuada para un 1 lógico.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: Como convertir señal pulsante en continua?
« Respuesta #9 en: 03 de Agosto de 2010, 22:57:51 »
yo hice algo parecido a lo que tienes para el robot de sumo, y la solución digital creo es la mas efectiva, aunque la analógica tambien puede andar. Para la analogica se me ocurre que puedes usar un filtro con una resitencia y un condensador (los entendidos que me digan si es pasa bajo o pasa alto  :oops:) y la salida a un comparador con un set.

Entonces es pasa bajos, yo creo que con eso tiene que funcionar, sino le agregas el comparador y con un preset puedes ajustar el rango.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado fantabuloso

  • PIC10
  • *
  • Mensajes: 24
Re: Como convertir señal pulsante en continua?
« Respuesta #10 en: 04 de Agosto de 2010, 11:20:25 »
Te dejo un enlace con filtros pasa bajos de primer y segundo orden.

Filtro Pasa Bajos

Saludos

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Como convertir señal pulsante en continua?
« Respuesta #11 en: 04 de Agosto de 2010, 11:48:23 »
Tenes que tener cuidado que no caiga en la zona de incerteza que puede ser interpretado como cualquier cosa 0 o 1. En la mayoría de los micros la zona va de menor a 0.8v un 0 y mayor a 2v un 1 digital pero difiere en distintos micros y con distintas fuentes de alimentación. Hay que consultar el datasheet para el caso  ;-)... yo lo haría como norberto.
LAS MALVINAS SON ARGENTINAS!


 

anything