私は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));
}