Autor Tema: Señal continua con TSOP1738  (Leído 14534 veces)

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

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Señal continua con TSOP1738
« Respuesta #45 en: 09 de Septiembre de 2010, 04:03:38 »
Lo mismo me paso en un pic12F para un control remoto.

Son varias las instrucciones cuando entra a interrupcion y sale de esta.
Y como el CLOCK era de 4MHz(1us por instruccion) me jodia todo! el mentado resguardo status.
Por lo que no podia hacer el cambio de 13us y 13us para los 38KHz

Saludos!

Desconectado arcachofo

  • PIC16
  • ***
  • Mensajes: 126
    • Foro para usuarios Linux.
Re: Señal continua con TSOP1738
« Respuesta #46 en: 24 de Septiembre de 2010, 19:40:55 »
Pues a mi entender y según dice claramente el datasheet las señales continuas las filtra.
Esto es lógico porque los tsop estos son para mandos a distancia y filtra cualquier cosa que no sean pulsos, además es especialmente sensible a ciertas duraciones de los pulsos.

Respecto a la frecuencia, la sensiblidad va disminuyendo a medida que te alejas de los 38 khz, pero sigue detectando a 30, 50 o 60 Khz si la señal es lo suficientemente fuerte, de hecho esto lo usé para hacer un medidor de distancias con IR: a medida que te alejas de los 38 khz el tsop es menos sensible y por tanto solo reacciona si el objeto está más cerca.

Tuve el problema que comenta jeremylf: al principio le mandaba 38KHz continuos y no funcionaba, mejor dicho solo detectaba algo al inicio de la señal. Luego según el datasheet le mandé pulsos de 600 uS on + 600 uS off (sobre la portadora de 38 Khz) y empezó a funcionar, pero incluso si esta señal es continua la sensiblidad no es gran cosa, mucho menor que usando un mando a distancia, así que le mandé trenes de pulsos de un par de mS seguidos de varios ms apagado y la sensiblidad aunmentó bastante.

Al final el mejor resultado lo obtube con esta rutina (GcBasic):
Código: [Seleccionar]
       For tempobyte = 1 to 12
            for pulso = 1 to 20 - tempobyte            'más pulsos para las primeras medidas
                set led_ir_izq on
                wait tempobyte us
                if tsop_ir off then detect += 1
                set led_ir_izq off
                wait tempobyte us
            next

            if detect > 3 then                      'ha habido deteccion de objeto
                dist_izq = filter(tempobyte-1, dist_izq)
                if dist_izq = 0 then atrapadoi += 1
                set flag_ir_izq off
                return
            End if
       next

La rutina manda trenes de pulsos de duración 12+12 uS hasta 1+1 uS (+ unos pocos ciclos de la rutina) esto es con reloj a 20 Mhz en un pic16f876.
Esto se repite para el led IR izquierdo, y el total se ejecuta cada 15 mS (por timer0).
Detecta objetos por reflexión hasta unos 3m en buenas condiciones, la distancia va desde 1 hasta 12.


Al primcipio a 4 Mhz usaba esta rutina (SDCC), porque los ciclos de más se notaban mucho:

Código: [Seleccionar]
   dd = 0;

    for (med=9; med>0; med--)
    {
        pul = 65;
        det = 0;

        _asm
        MOVF   _med,W

        pulsod:
        BSF    PORTA,6          //enciende led derecha
        ADDWF  PCL,F          //salta _med NOPs para obtener la frecuencia deseada
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BTFSS  PORTA,4          //lee A,4
        INCF   _det,F
        BCF    PORTA,6          //apaga led dcha
        ADDWF  PCL,F
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP    
        DECFSZ _pul,F
        GOTO   pulsod
        _endasm;

        if (det > 10)
        {
            dd= med;
            goto saled;
        }

    }



Saludos.
« Última modificación: 24 de Septiembre de 2010, 19:45:00 por arcachofo »

Desconectado murdoc25

  • PIC10
  • *
  • Mensajes: 2
Re: Señal continua con TSOP1738
« Respuesta #47 en: 24 de Mayo de 2013, 22:47:19 »
Hola amigo me gusto mucho tu post puesto que yo quiero hacer algo parecido tengo mi tsop1738 y necesitaba mandar un tren de pulsos 1 y 0 continuos pero ya me va quedando un poco mas claro que no se puede, el proyecto que estoy tratando de realizar es un contador de personas  al interrumpir la seña infrarroja me contara uno 4 de estos con tu experiencia crees que pueda lograrlo o me recomiendas usar otro receptor  que pueda recibir  continuo el tren de pulsos