Lectura analógica de sensores infrarrojos

Con el fin de poder leer un sensor infrarrojo del tipo diodo (aunque realmente es un transistor con una base fotosensible), se realizará el siguiente montaje:

Funcionamiento

El diodo LED de infrarrojos (el de la izquierda) está en serie con una resistencia de 100 ohms, y la luz es recibida mediante rebote por el sensor de la derecha. El puerto analógico convierte el voltaje en el punto medio en un valor de 10 bits (0-1024).
Si en el emisor se sustituye la resistencia por una de 50 ohms conseguiremos que detecte objetos más lejanos.

Base teórica

El puerto analógico se comporta como un circuito abierto, por lo que no consume ni cede corriente.

Cuando el sensor de infrarrojos no recibe infrarrojos se comporta como un diodo al corte, por lo que el potencial en el puerto analógico es de 0V ya que no hay corriente circulando por la resistencia de 1Mohm y por lo tanto se establece al potencial en el polo negativo del generador de corriente.

Cuando el sensor de infrarrojos recibe infrarrojos, se comporta como un cortocircuito (idealmente) por lo que el potencial en el puerto analógico se establece a un valor cercano a los 5V (ya que en el transistor hay una pequeña caída de tensión). En este momento, mientras que el sensor está conduciendo, hay un consumo de corriente a través de la resistencia de 1Mohm, y cuando mayor sea esta resistencia menor consumo, por lo que cuanto mayor sea, mejor.

Cuestiones prácticas

En la práctica, la intensidad del emisor no es suficiente para saturar el transistor receptor, por lo que sólo se consigue que, mediante reflexión de la luz infrarroja en un folio en blanco, el sensor funcione como una resistencia que hace caer alrededor de 2-2,5 voltios en sus extremos.
Si se utiliza una llama de mechero sí que se consigue que el transistor sature y se comporte casi como un cortocircuito (situación deseada).
Teniendo en cuenta esto, el puerto analógico desperdicia parte del rango de conversión, dado que se compara con 5 voltios de referencia. Mediante código solucionaremos esto haciendo que compare el voltaje en el puerto con 2,6 voltios.

Código

El siguiente código lee cada 500 milisegundos el puerto analógico y escribe el valor leído por el puerto serie. Se puede probar a utilizar un papel pintado a franjas blancas y negras y comprobar el comportamiento al transitar de franja a franja.

Detalles

  • La conversión analógica es mucho más lenta que la lectura digital. Una conversión analógica tarda entre 13 y 250 microsegundos.
  • El arduino posee mucho ruido en la lectura de puertos analógicos, ya que la librería no está programada para realizar lecturas precisas.

Modulación en amplitud

Pues aquí pongo las imágenes con las que traté de explicar a mi novia (creo que satisfactoriamente ;) cómo es que se podía recuperar una señal multiplexada al multiplicar por cosenos, etc, etc, etc…
La primera imagen es una chapuza, la segunda está mejor y la tercera es un gif animado que es la leche !! ^_____^

Explicación chapuza de convolución

Explicación decente de convolución

Modulación y convolución

Modulación y convolución. Hacer click para ver la animación.