Autor Tema: Codigo C para generar un tren de pulsos a 38khz para el TSPO1738  (Leído 6481 veces)

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

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« en: 22 de Agosto de 2011, 10:07:48 »
Hola:

Este código genera un tren de pulsos de 38 khz para el receptor TSPO1738. No está probado en el hardware pero sí en Proteus.

Código: C
  1. #include <12F629.h>
  2. #fuses NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT
  3. #use delay(internal=4M)
  4. #use fast_io(a)
  5. void main(){
  6. int i;
  7. set_tris_a(0x00);
  8. while(1){
  9. for(i=0;i<23;i++){
  10.    output_high(PIN_A0);
  11.    delay_us(12);
  12.    output_low(PIN_A0);
  13.    delay_us(6);
  14.    }
  15. delay_us(600);
  16. }
  17. }

imagen de proteus




imagen de la señal obtenida del datasheet TSOP1738



Un saludo

Aitor

Desconectado zerovlc

  • PIC10
  • *
  • Mensajes: 28
Re: Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #1 en: 25 de Agosto de 2011, 05:57:48 »
para conseguir una frecuencia de 38khz necesitas pulsos de 26 micros es decir 13 micros a nivel alto y 13 a nivel bajo

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #2 en: 25 de Agosto de 2011, 10:50:34 »
para conseguir una frecuencia de 38khz necesitas pulsos de 26 micros es decir 13 micros a nivel alto y 13 a nivel bajo

Segun el datasheet del TSOP1738 el testeo se conseguira con la señal de la imagen, es decir, un tren de pulsos de 38 khz de duración 600 us tanto en ON como en OFF. El codigo consigue casi los 38 khz aunque todavia no lo he probado en el hardware real.

Desconectado zerovlc

  • PIC10
  • *
  • Mensajes: 28
Re: Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #3 en: 31 de Agosto de 2011, 08:32:11 »
exacto, tu codigo esta bien solo habria que modificar los tiempos de on y de off que los tienes en 12 y 6 micros

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #4 en: 31 de Agosto de 2011, 09:10:59 »
exacto, tu codigo esta bien solo habria que modificar los tiempos de on y de off que los tienes en 12 y 6 micros

  Lo más probable es que estén elegidos así a propósito, porque hay que tener en cuenta que existe la demora en la evaluación del ciclo for. Entonces, el tiempo que insumen las instrucciones de dicha evaluación, compensa la diferencia de los delay.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #5 en: 31 de Agosto de 2011, 12:04:57 »
exacto, tu codigo esta bien solo habria que modificar los tiempos de on y de off que los tienes en 12 y 6 micros

  Lo más probable es que estén elegidos así a propósito, porque hay que tener en cuenta que existe la demora en la evaluación del ciclo for. Entonces, el tiempo que insumen las instrucciones de dicha evaluación, compensa la diferencia de los delay.

Si, efectivamente. Lo ideal quizas seria hacerlo en ensamblador para realizar los calculos de manera exacta pero como bien dices, intente compensar los retrasos que se generan con el FOR pero de momento no he tenido tiempo de verlo en el osciloscopio.

Desconectado gbanda

  • PIC10
  • *
  • Mensajes: 1
Re:Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #6 en: 28 de Febrero de 2018, 19:23:51 »
Alguien podria ayudarme ingrese este programa para generar los 38 khz en el diodo infrarrojo al probarlo en fisico el tsop1738 cambia de 5 vdc a 2.5 vdc cuando recibe señal del receptor infrarrojo, que no deberia irse a O volts?

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #7 en: 15 de Marzo de 2018, 03:43:23 »
Alguien podria ayudarme ingrese este programa para generar los 38 khz en el diodo infrarrojo al probarlo en fisico el tsop1738 cambia de 5 vdc a 2.5 vdc cuando recibe señal del receptor infrarrojo, que no deberia irse a O volts?

¿Lo estas midiendo con un polimetro?.  La salida te estará dando 38 khz por lo que es normal que el polimetro indique 2,5 que es la media de lo que le estas metiendo. 0; 5; 0; 5; 0; 5; 0; 5;....... sucesivamente 38.000 veces por segundo.

  Eso miralo con el osciloscopio.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re:Codigo C para generar un tren de pulsos a 38khz para el TSPO1738
« Respuesta #8 en: 15 de Marzo de 2018, 18:11:10 »
Consigue un datasheet que represente lo mas posible al integrado que tienes y seguro ahi te trae un circuito tipico de aplicación.

La forma de usarlo no es como una salida de tensión, sinó como un pulso bajo, por eso generalmente se coloca una resistencia de 10k entre el terminal de salida (3) y los 5V.

La forma de los 38khz modulados en 600us es para evitar la saturación del modulo receptor.

Tambien tienes que jugar con los tiempos del pulso y la corriente del diodo emisor, así puedes lograr mayor alcance.
A menor tiempo del pulso alto, mayor corriente puede aceptar el diodo y mayor alcance.
Lo mismo que para el modulo receptor, consigue el datasheet del diodo led y puedes ver que corriente máxima te permite, así no lo quemas.

Yo hace un tiempo armé una plaquita con un 16f84 y 4 modulos, especifica para solo estos emisores y receptores.
Dediqué cuatro pines para salidas, y tambien hice un programita con algo de logica para detectar falsas detecciones.
Por ahi te das una idea.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.


 

anything