Hola de nuevo.
Por si a alguien le puede ser util, os voy a mostrar un mini-proyecto que he hecho para controlar hasta 5 detectores de obstaculos usando el TCRT5000 ( Reflective Optical Sensor) y 2 detectores de contacto. Esta placa forma parte de un proyecto mayor, un robot 4WD controlado por una placa ARM Stellaris Cortex LM4F120 de TI.
La placa, como digo, controla hasta 5 sensores, para ello he optado por usar 5 entradas analogicas de un PIC18F1320 que leen la salida de cada sensor, secuencialmente el led de cada sensor se activa durante un periodo corto de tiempo, aprox. 1 ms, de forma que puedo por medio de un transistor darle caña, mas de 100 mA, con esto "creo" que aumento un poco el alcance sin afectar mucho el tiempo de vida del LED,( espero
) aun así el alcance no es mucho 4-5 cm, y depende del color del objeto que este delante... Si alguien esta preocupado por la intensidad que pasa por el LED, siempre se puede aumentar la resistencia que le alimenta, yo uso una 22 ohmios.
Despues de leer con el ADC cada salida,se compara con un valor de referencia que se ha establecido previamente: 2/3 del valor que se lee al comenzar el programa, considero que es el valor que da el sensor cuando no hay nada delante. El criterio es : si el valor leido es inferior a esta referencia se ha detectado obstaculo por ese sensor.
Después de esto, se codifica el valor de cada sensor (1:detectado obstaculo, 0 : no detectado) en cada bit de un byte que se envia siguiendo el protocolo SPI ( esto aún no está probado). Este dato por SPI es lo que debe leer la placa madre ARM, y despues de esto, vuelta a empezar....
El esquema simplicado que usado para probarlo con Proteus es este: