以下のパーツが必要になります。LED を点滅させるだけであれば Arduino は不要です。単三乾電池 4 本を直列にして 6V 電源にすれば動作します。照度測定のためにパルスの周波数を計測する目的で Arduino を利用しています。
タイマ IC として有名な 555 を利用すると、無安定マルチバイブレータ回路をトランジスタやオペアンプを別途用意することなく設計できます。この発振回路の周波数は接続するコンデンサおよび抵抗の値で決まります。データシート等に記載されている回路例の抵抗一つをフォトトランジスタに置き換えると、照度の変化が抵抗値の変化に相当し、周波数が照度に応じて決まることになります。通常のトランジスタではベース電流に応じて流れる電流の大きさが決まりましたが、フォトトランジスタでは照度に応じて決まるためです。
http://schematics.com/project/flickering-led-48812/
pulseIn 関数で周波数を計算しています。照度センサの出力をタイマ IC でパルスに変換することで、今回場合においては Arduino の 10 ビット A/D 変換で直接読み取る場合と比較して精度よく照度の変化を測定できます。
#define PULSE_INPUT_PIN 2
void setup() {
pinMode(PULSE_INPUT_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
// 第二引数で指定した状態 (HIGH/LOW) が継続したマイクロ秒数を計測します。
// https://www.arduino.cc/en/Reference/pulseIn
unsigned long T_H = pulseIn(PULSE_INPUT_PIN, HIGH);
unsigned long T_L = pulseIn(PULSE_INPUT_PIN, LOW);
// 周期と周波数
double T = T_H + T_L; // μ秒
double f = 1000000 / T; // Hz
// シリアルモニタに送信
Serial.print(f);
Serial.print(" Hz\n");
delay(500);
}