Autor Tema: Infrarrojo...  (Leído 5623 veces)

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

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
Infrarrojo...
« en: 22 de Agosto de 2005, 16:06:00 »
Hoy compré un diodo IR y un IRM-8601S, de Everlight electronics. La idea original
era hacer un sensor que avise cuando un objeto se interponga entre emisor y
receptor.

Pero como soy... cuando tengo tecnología nueva para mí en las manos,
rápidamente quiero aprender todo lo que pueda sobre la misma... y se me ocurre...
aprender a modular-desmodular diferentes protocolos... por ejemplo
IRDA, rc5 y demás.

La idea es escribir librerías en C (si se puede) y compartirlas.

Hasta donde entiendo, la portadora es una cuadrada de 38 KHZ (por lo menos es
lo que decodifica el IRM).

.-Primera pregunta: ¿Cómo genero una cuadrada de 38 Khz en C?

Supuestamente con

Codigo:

while (TRUE)
{
   ouput_low (PIN_A0);
   output_high (PIN_A0);
   delay_us (26);
}



Debería ser suficiente...

¿Qué opinan los compañeros foristas?



Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Infrarrojo...
« Respuesta #1 en: 23 de Agosto de 2005, 02:33:00 »
Dos comentarios:
1) quizás sería mejor dividir el retraso en dos tramos de 13us para que el tiempo que está la señal a nivel alto sea el mismo que a nivel bajo

2) metiéndolo en un bucle como lo tienes dejarás ocupado el micro permanentemente con esta tarea. Sería mucho mejor si lo haces con un timer que levantase una interrupción cada 13us y ahí cambiases el estado de la salida. De esta manera seguirías teniendo el micro libre para hacer otras cosas.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Infrarrojo...
« Respuesta #2 en: 23 de Agosto de 2005, 03:31:00 »
Ademas aparte de la modulación, necesitas mandar los datos ... con lo cual ya se complica un poco el soft, otra solución podría ser mandar los datos en serie po un pin y modularlo con un 555 o algo así, si no quieres tener un PIC ocupado para eso. Flash
Si juegas contra el mejor, pierdes como los demás.

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #3 en: 23 de Agosto de 2005, 10:06:00 »

El ejemplo de código es simplemente cómo generar una señal infinita de 38 Khz
con un PIC. Es un "overkill" hacer esto. Voy a construir un oscilador con un 555 en
modo astable para probar.

Por supuesto que falta la etapa del envío y recepción de datos...

También se me ocurre que se puede hacer un sensor de proximidad midiendo
el rebote...



Saludos

Desconectado Algec

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 974
RE: Infrarrojo...
« Respuesta #4 en: 23 de Agosto de 2005, 13:37:00 »
YO hice una emision recepcion de datos IR con el 555 y un pic 16F84, creo que es la mejor opcion funciona muy bien y s epuede ajustar la freciuencia con un portenciometro para adaptarlo a distintos receptores de IR.
Creo que es la mejor opcion.

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #5 en: 23 de Agosto de 2005, 16:21:00 »


Pues bien, aqui está... lo voy a construir en estos días... es un simple
oscilador en modo astable. Más adelante les cuento cómo me fué así como
la fabricación de la parte de lectura.

Una vez hecho esto, comenzaré a trabajar sobre los protocolos.

El jumper J2 está para que en la posición cerrada entre pines 1 y 2, el
oscilador pueda ser disparado desde el PIC. Si lo cerramos entre 2 y 3,
queda disparado (para usarlo como un sensor de corte de línea de visión).

J1 pin 1 es VCC de 5 Volts y J1 pin 2 es masa.

Puse un conector de 2 pines en vez del led en el board, porque supongo que
siempre voy a necesitar fijar el led en alguna posición en la que el board sería
un estorbo.



Saludos

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #6 en: 26 de Agosto de 2005, 09:20:00 »

Anoche armé el osciladorcito éste. Me dió dolores de cabeza el 2N2222 porque
aparentemente es muy sensible al calor y a la hora de soldarlo lo debo haber
quemado (usé la versión con encapsulado metálico).

Como tenía a mano unos darlington (MPSA13) que habá comprado hace poco,
y después de verificar que los mismos aguantan una velocidad de switcheo de
125 Mhz (contra 100 Mhz del 2N2222), decidí probar uno.

Funciona perfectamente, aunque el capacitorcito en vez de darme 1 nf, me daba
casi 2.2 nf, por lo que tuve que cambiar la resistencia de 15K por una de 4.7K.

Una vez hecho esto, lo pude ajustar a 38 Khz. Bueno, en realidad oscilaba
entre 29.98 y 30.02 khz y supongo que puede llegar a oscila mucho mas
dependiendo de la temperatura.

También comprobé que el led infrarrojo encendiera con la cámara de video!

Por ahora suspendo esta investigación hasta que resuelva el tema de la
estabilidad del PIC del amplificador...


Saludos

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Infrarrojo...
« Respuesta #7 en: 26 de Agosto de 2005, 09:26:00 »
Ke mal suena eso de suspender.......loco
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #8 en: 26 de Agosto de 2005, 14:56:00 »

No entendí por qué suena mal "suspender". ¿Me ilumina maestro?

En cuanto al oscilador, midiéndolo en el osciloscopio, la cuadrada que se supone
que tiene un ciclo de 50-50%, en realidad es como de 60-40% (60% on y 40%
off). Supongo que igual funcionará correctamente.


Saludos

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
RE: Infrarrojo...
« Respuesta #9 en: 28 de Agosto de 2005, 02:44:00 »
Auuu! no es por nada pastito, pero porque no haces el retardo en Assembler? Mira que mi especialidad es el C, y aun asi me quedo con el ASM para esto de los PICS...
Saludos.
Ya que estamos en el tema: diganme: la frecuencia e Infrarrojo de los controles remotos de DirecTV ¿son iguales a los demas controles remotos comunes? ¿alguien sabe que codigo usan? Saludos...
La pucha! RebotadoRebotadoRebotadoRebotadoRebotadoRebotadoRebotadoRebotadoComo me gustan esto de los Infrarrojos! RebotadoRebotadoRebotadoRebotadoRebotadoRebotadoRebotadoRebotadoRebotado
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #10 en: 29 de Agosto de 2005, 14:11:00 »

Estimado brunof:

Si a la hora de programar los retardos en C, no me basta con la precisión de
los micro-segundos (aunque en teoría debería alcanzar), entonces no tendré
problemas en escribir esas rutinas en assembler (embebidas en el C).

En cuanto a los controles de los decodificadores de Direct TV, ni idea. No tengo
ninguno a mano... si lo tuviera es tan fácil como abrirlo y conectar un
frecuencímetro y medirlo. A pesar de que tengo un buen osciloscopio, mi
humilde tester marca Unit-T, tiene un frecuencímetro de 0 a 10 Mhz que funciona
muy bien.


Saludos

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #11 en: 30 de Agosto de 2005, 15:52:00 »

Midiendo anoche, me doy cuenta de que este circuito tiene un problema enorme:

La frecuencia a la que oscila el 555 depende de la comparación del voltaje de entrada...

por ejemplo a 4.5 volts tengo 38 kHz, a 6 volts tengo 60kHz.

¿Cómo se hace un oscilador que no sea tan susceptible a este problema? (aparte
de con otro microcontrolador, por supuesto).

Usando una compuerta tipo la 74SL14 (cn schmidt trigger?)

¿Un puente de Wein?

Una compuerta y un cristal? (o un resonador cerámico?)

¿Por dónde me conviene encarar?



Saludos y gracias

Desconectado paymer

  • PIC10
  • *
  • Mensajes: 23
RE: Infrarrojo...
« Respuesta #12 en: 31 de Agosto de 2005, 12:57:00 »
Hola, si te sirve de ayuda te dire que yo estoy haciendo un simulador de mando a distancia para adaptar el mando que lleva en el volante mi coche a un radiocd que he colocado para asi poder controlarlo como en el montaje original del coche.

Te cuento a grandes rasgos como lo estoy haciendo:

-para generar la portadora he usado el modulo PWM del 16f877a, asi mi ahorro
un oscilador externo

-el tren de impulsos sin modular lo saco por otro pin y mediante una puerta AND
exterior los uno a la señal PWM, de la salida de la puerta ataco a la base de un transistor que gobierna el led infrarrojo.

-el programa esta hecho en c y no he tenido probemas con los retardos ya que lo
he probado fisicamente(la parte de trasmision) y funcina de miedo.

-lo unico que me queda es adaptar las señales del mando en el volante,que son unas resistencias comnmutadas y para esto usare el conversor a/d.

espero que la idea te sirva de ayuda

Desconectado pastito2003

  • PIC12
  • **
  • Mensajes: 65
RE: Infrarrojo...
« Respuesta #13 en: 31 de Agosto de 2005, 18:48:00 »

Me parece que voy a terminar usando un PIC 16F84 también como oscilador... la
verdad es que es mucho más sencillo que construir un oscilador y ajustarlo. Odio
que un cambio de temperatura o de voltaje cambie tanto la frecuencia!

Si al fin y al cabo, al oscilador hay que controlarlo con un PIC... es simplemente
complicarse la vida...


Saludos


 

anything