bueno ayer me dispuse a hacer experimentos y ps consegui algo... segui mi idea de leer no el catodo sino el anodo del led y en vez de usar la reflexion de la luz propia (osea la d el mismo led que estoy midiendo) use la luz de un led que esta al lado del led al cual le estoy midiendo...
trabajar de esta manera me permitio tener un codigo mas simple

(creo yo) pero la limitante es el led que emite la luz
use dos led bicolor (usando en la "emision" y la "recepcion" el color rojo) y pues aki les dejo el programa que hize para ello en mikro basic y me vali de un lcd 2x16 para ver los datos que se iban obteniendo de la conversion analoga digital en tiempo "real" ps guardar en la eeprom es muy lento
program LED_SENSOR
'Simbolos para los anodos del led receptor
Symbol ANODO_ROJO = PORTA.0
Symbol ANODO_VERDE = PORTA.1
'Variables necesarias
Dim t as word
Dim texto as char [5]
main:
'Configuro el puerto A
trisa = %00000001
'Configuro la conversion AD
adcon1 = %10001110
'le indico al micro como esta conectado el lcd
Lcd_Init(PORTB)
'limpio el lcd
Lcd_cmd(lcd_clear)
PRINCIPAL:
'Obtengo el valor de la conversion AD
t = adc_read(0)
'hago la conversion a string para poder mostrar en el display
WordToStrWithZeros(t, texto)
'muestro el dato por el display
Lcd_out(1,1,texto)
'retardo de 1 segundo para poder ver bien el dato
'delay_ms(1000)
'Obtengo el valor de la conversion AD
t = adc_read(0)
'Mientras que la lectura del anodo rojo (pin 0 del AD) sea mayor que 286
while t>=260
'Enciendo el color verde del led bicolor
ANODO_VERDE = 1
'hago la conversion a string para poder mostrar en el display
WordToStrWithZeros(t, texto)
'muestro el dato por el display
Lcd_out(2,1,texto)
'lo dejo encendido un tiempo
DELAY_MS(1000)
'salgo del ciclo ps tener el led en este estado me puede generar
'falsos positivos
GOTO SALIDA
wend
SALIDA:
'Apago el color de indicacion de deteccion
ANODO_VERDE = 0
GOTO PRINCIPAL
end.
El valor de 260 es experimental y depende de las condiciones de luz exteriores

, cosa por la cual seria bueno hacer que el pic detecte las condiciones d luz externeas y el mismo pic decida cual seria el nivel adecuado para este valor, de este modo el circuito podria configurarse el mismo en cualkier ambiente. De todas formas kabe decir que la deteccion minima en la conversion AD (a oscuras o a la luz de un bombillo normal de 100w) es de 260 y la maxima (que seria tocando a ambos led con el dedo) es de 290 con estos limites se podria hacer algo para detectar la distancia del elemento reflectante o cualkier cosa que se nos ocurra.
y un problema que tube al usar led bicolor es que al detectar algo debia tener encendido un color del led (en este caso el color verde) y esto me afectaba las mediciones sobre el led rojo cosa que me generaba falsos positivos con el led de deteccion que es el color rojo, pues al hacer por ejemplo la primera deteccion se prendia el color verde y este me generaba "ruido" sobre el color rojo y asi las cosas el sistema siempre detectaba y se me kedaba "blokeado" en la deteccion ps siempre detectaba, sinembargo eso se pudo corregir por soft

.
y pues no es mas les prometo que ahora subo un video mostrando el funcionamiento (no lo subo ya pk ke no se k changos le pasa al moviemaker que se blokea al grabar)
y pues no siendo mas espero haber contribuido en algo y ya saben ke si me ekivoke en algo o alguna duda me avisan
