Cómo recibir la señal IR en PIC18F

2

Necesito recibir la señal del LED del transmisor IR. No estoy seguro de cómo programar el microcontrolador. Estoy buscando algún concepto, cómo hacer eso. ¿Si tengo que usar la conversión A / D? ¿Cómo sincronizar transmisor y receptor? ¿Qué estructura habrá en los próximos datos? Digamos que asumí 600us para 0 (0 binario) y 1200 para 1 (1 binario) cuando estaba programando un transmisor. ¿Cuáles son los pasos comunes para recibir la transmisión de infrarrojos en el microcontrolador PIC18F?

    
pregunta sennin

4 respuestas

3

Aquí hay una buena introducción a la recepción de IR . Está dirigido a Arduino, pero todos los conceptos son aplicables a cualquier microcontrolador.

  Los detectores de infrarrojos

son pequeños microchips con una fotocélula que están sintonizados para escuchar la luz infrarroja. Casi siempre se usan para la detección con control remoto: cada televisor y reproductor de DVD tiene uno de estos en la parte frontal para escuchar la señal IR del pulsador. Dentro del control remoto se encuentra un LED IR que coincide, que emite pulsos IR para indicar al televisor que encienda, apague o cambie los canales. La luz IR no es visible para el ojo humano, lo que significa que se necesita un poco más de trabajo para probar una configuración.

     

En este tutorial mostraremos cómo hacerlo

     
  • Pruebe su sensor IR para asegurarse de que funcione
  •   
  • Lea los códigos IR sin procesar en un microcontrolador
  •   
  • Crear un intervalómetro de cámara
  •   
  • Escuche los 'comandos' de un control remoto en su microcontrolador
  •   
    
respondido por el Toby Jaffey
1

enlace

enlace

Las anteriores están un poco anticuadas ahora, y la luminaria micro (de donde obtuve lmi) ahora es ti, aunque el nombre de stellaris permaneció igual. Es probable que su imagen no sea tan rápida y ciertamente no sea tan eficiente para ejecutar el mismo código C, no como lo haría de todos modos, el punto era mostrar un par de formas para descodificar (y en un caso transmitir) IR desde controles remotos.

Recomendaría un módulo receptor de infrarrojos, hace la parte difícil por ti, le das energía y tierra y devuelve un demodulado alto o bajo. Alimenta eso en tu microcontrolador y mide el tiempo entre los cambios de estado. Los protocolos están documentados en varios lugares; si no está intentando descodificar un protocolo de control remoto específico, le recomiendo que pruebe algunos protocolos y aísle el que desee. Algunos protocolos son más fáciles de decodificar, algunos son mejores que otros en cuanto a cómo funcionan.

tanto para recibir como para transmitir, necesitas saber qué protocolo y / o remoto. Hay algunas diferencias de frecuencia, los receptores seguirán funcionando pero obtendrá una señal más precisa y clara (en el receptor) si elige la frecuencia correcta. Al transmitir, también necesita saber cuál es la frecuencia del operador. Para transmitir solo necesita un led IR, no hay módulos especiales. Bueno, vamos a hablar de eso. Hay dos estados, que se activan y desactivan si se desconecta a tierra o con cero voltios la salida del pin gpio conectado al led. Pero para activarlo, no solo conduce a VCC, debe pulsar a la frecuencia de la portadora; si la frecuencia es de 40 kHz, debe generar 40 kHz en la línea de E / S durante el período que desee que el LED esté "ENCENDIDO". Estos periodos de encendido / apagado son los mismos periodos de encendido y apagado que recibe en el receptor, excepto que el módulo receptor ha eliminado la frecuencia de la portadora. Estoy seguro de que hay una serie de sitios web sobre el tema. De modo que sus opciones simples son: 1) su software genera, con la mayor precisión posible, la frecuencia del operador para los periodos de activación. 2) su microcontrolador ofrece una manera con un temporizador para generar la frecuencia y le permite activarlo y desactivarlo de alguna manera dentro del chip. 3) su microcontrolador puede generar la frecuencia de la portadora pero no le permite controlar la salida, puede optar por utilizar un externo y una puerta de cierto sabor, o devolver las salidas a otras entradas del microcontrolador y proporcionar la función y la salida, y otro pin de gpio (necesita tener la potencia del microcontrolador para hacerlo, lo que significa que probablemente podría haberlo generado usted mismo). 4) utilice un oscilador externo de algún tipo en la frecuencia de la portadora, un externo y una compuerta de algún tipo y generará el contorno de la salida que se rellena con la portadora cuando se haga clic.

IR, es bastante simple, y es un muy buen proyecto de microcontrolador para principiantes. Primero aprenda a parpadear algunos leds (no a IR), use el código de tiempo y los temporizadores de chip internos (sin y luego, si lo desea, con interrupciones) y LUEGO, intente recibir algo de IR. Al principio tomaría la entrada del receptor IR y lo que sea que lea en esa entrada, lo escribe en un led que no sea IR. Cuando presiona el botón en un control remoto IR, debería ver el parpadeo del led. Si tiene un protocolo con un patrón de inicio, puede usar el temporizador para medir los impulsos y cuando vea ese impulso de inicio, parpadee el led y eventualmente trabaje para descodificar todo el patrón de IR.

    
respondido por el old_timer
0

¿Tiene usted el control del remitente y del receptor, o el remitente utiliza un protocolo existente? Si tiene el control, puede elegir un formato de datos simple, como un pulso de 1 ms para un pulso de 0, 2 ms para un 1. Si no: revise las especificaciones del protocolo.

Tenga en cuenta que no puede simplemente transmitir un flujo de bits, porque los receptores IR comunes requieren pulsos y pausas en el flujo de datos.

Consulte el enlace capítulo 6 (p 60) para obtener información. Se enfoca en RC5.

    
respondido por el Wouter van Ooijen
-1

Creo que generar una frecuencia conocida en IR permite al diseñador eliminar los efectos de IR de fondo (de Sun y CFL, etc.) Supongamos que usamos 40 kHz para un '1' y 25 kHz para un '0', El receptor de IR necesita averiguar la frecuencia recibida. Necesitamos pausas entre las frecuencias para separar los bits recibidos. ¿Qué tan rápido llegarían las interrupciones de IR a lo largo de 40 kHz, una interrupción cada 25 microsegundos? Si ejecuta el PIC 18F2550 a 20 MHz, los ciclos de instrucción serían .1 microsegundos o 10 instrucciones por microsegundo. Suponiendo una latencia mínima, esto permitiría aproximadamente al procesador ejecutar 150 instrucciones entre interrupciones. Las interrupciones del temporizador serán necesarias para calcular el tiempo transcurrido para calcular la frecuencia de la señal recibida. Creo que hacer todo esto en un Pic18F2550 es una especificación demasiado estricta. Necesitamos ejecutar un procesador de 40 MHz para un mejor rendimiento. Otra opción es hacer una conversión de frecuencia a voltaje y leer el voltaje a través de un puerto analógico a digital. Esto necesita calibración y un algoritmo adaptativo sería útil aquí para la calibración.

    
respondido por el Suresh Doraiswamy

Lea otras preguntas en las etiquetas