Respostas:
É possível usar um led como sensor de luz e como emissor de luz. Essencialmente, um led de polarização reversa atuará como um capacitador; se for desconectado, a carga será drenada a uma taxa aproximadamente proporcional à luz que o atinge.
Podemos usar isso com um microcontrolador - utilizando a capacidade de vários estados das portas.
O resistor deve ter cerca de 100 ohms, usei apenas com leds vermelhos - pode funcionar com outros.
Use a seguinte sequência:
Set Port A output high
set Port B output low // this makes sure the led is discharged
wait 1mS
set Port A output low
set Port B output high // reverse bias and charge
wait 1mS
set Port B as input // Port B is high impedance input
time how long for Port B to read low
O período de tempo dependerá da quantidade de luz que atinge o led.
Existem vários exemplos disso na web - vou listá-los aqui conforme os encontro novamente:
O LED detecta e exibe a intensidade da luz ambiente
LEDs vermelhos funcionam como sensores de luz
Sensor multitoque através de displays matriciais de LED - vídeo muito legal
Sensoriamento e comunicação de custo muito baixo usando LEDs bidirecionais
Aqui está um bom vídeo descrevendo como os LEDs podem ser usados como sensor de luz http://www.youtube.com/watch?v=VZUvoLDlMS0 Também Forest M.Mims III escreveu sobre projetos simples usando LEDs como sensores de toque também.
Além disso, li que os LEDs SMD funcionam melhor como sensores de luz do que através de LEDs de furo ...
Aqui está um circuito que usa um LED para detectar luz de um kit educacional:
O LED 0 permite que uma corrente muito pequena, com influência da luz, passe porque sua polaridade é invertida. Verifique se é verde, amarela ou transparente ou pode não funcionar (vermelho). Os transistores amplificam essa corrente apenas o suficiente para acionar um LED polarizado normal (LED 1). Você pode ajustar a sensibilidade adicionando mais transistores, tendo assim uma maior amplificação, respondendo a um nível de iluminação mais baixo.
Este site: http://www.users.waitrose.com/~robinjames/LED_as_light_sensor/LED_as_light_sensor.html mostra como medir os níveis de luz usando um LED e um opamp, para fornecer uma tensão proporcional ao nível de luz. Ele fornece uma ampla gama de leituras e trabalha desde a escuridão total até a luz do sol. Ele pode ser usado para alimentar o ADC de um microcontrolador, como um Arduino.
As fotocélulas são uma maneira simples de detectar a luz. Sua resistência varia proporcionalmente à quantidade de luz que brilha nela.
O LadyAda possui uma excelente descrição de fotocélulas, incluindo a implementação do Arduino: http://www.ladyada.net/learn/sensors/cds.html .