2016-11-11 2 views
0

私はArduinoのプロジェクトに取り組んできましたが、魅力的で紛らわしいものを見つけました。だから、私はこのプロジェクトを構築する前に何かをテストしなければなりませんでした。私は単なるLEDとフォトレジスタで構成された簡単な回路を作りました。私がテストしなければならなかったのは、フォトレジスタがPWMによって暗くなっていたLEDの明るさを判断できるかどうかでした。私の最初の期待は、これはうまくいかないということでした(PWMがデジタルで達成されるため、フォトレジスタは1023か0のどちらかになります)。私の驚いたことに、フォトレジスタは正確にLEDの輝度を正確に読み取ることができました(これは、PWM LEDの見かけの明るさを特定の抵抗と直列に配置されたLEDと単純に比較したものです)。これはまさに私が望んでいたものですが、なぜこれがうまくいくのか不思議です。私の最初の疑念がフォトレジスタやPWMの誤解によるものかどうかはわかりません。どんな助けでも大歓迎です。ありがとうございました!ここでArduino:フォトレジスタにanalogRead()を使用してPWMでLEDを読み取る

は、私は(私が働いているプロジェクトはPWMのコントロールの一定のレベルを持っている私を必要とするため、私はanalogWrite()関数を使用していない)実行していますコードです:

const int LED_PIN = 9; 
const int PHOTO_PIN = 0; 

//These values have been altered and tested 
const int HIGH_TIME = 250; 
const int LOW_TIME = 2750; 

void setup() 
{ 
    pinMode(LED_PIN, OUTPUT); 
    pinMode(PHOTO_PIN, INPUT); 

    Serial.begin(9600); 
} 

void loop() 
{ 
digitalWrite(LED_PIN, HIGH); 
delayMicroseconds(HIGH_TIME); 
digitalWrite(LED_PIN, LOW); 
delayMicroseconds(LOW_TIME); 

Serial.println(analogRead(PHOTO_PIN)); 
} 

答えて

0

A 「フォトレジスタ」は可変抵抗器です。それはそれを言う最も簡単な方法です。

ポテンショメータを想像してみてください。少しのつまみを回してその抵抗を制御できますし、analogReadです。反対側のフォトレジスタは光強度に応じて抵抗値を変化させます。そのため、あなたのLEDに応じて抵抗が上下になります。

「方法」については実際には、hereを参照してください。 - お部屋の周囲の光

1:

は今、考慮すべき要素がいくつかあります。

2 - あなたのLED

間の距離は、だから私はあなたがフォトレジスターについてもう少し学ぶ助け願っています!

0

フォトレジスタの応答時間は、使用しているPWM周波数よりもはるかに低速です。したがって、LEDのオンとオフの時間を平均し、平均光に比例した抵抗を与えます。応答時間が速いフォトダイオードを使用していた場合、LEDがオン/オフするのを「見る」ことができます。

私は、ループのたびにシリアルポートに書き込もうとしないことをお勧めします。なぜなら、9600ボーですぐに後退するからです。おそらくループを通して500回ごとに書きます。

関連する問題