我一直在與Arduino一起開發一個項目,並且遇到了一些令我感到迷惑或困惑的東西。所以,我在構建這個項目之前必須測試一些東西。我建立了一個由LED和光敏電阻組成的簡單電路。我必須測試的是,光敏電阻能否確定通過PWM變暗的LED的亮度。我最初的期望是,這是行不通的(光敏電阻將讀取1023或0,因爲PWM是數字化實現的)。令我驚訝的是,光敏電阻能夠準確地讀取LED的亮度(準確地說在一定程度上 - 這只是基於比較PWM LED的視在亮度和與特定電阻串聯的LED)。這正是我想要的,但我只是好奇爲什麼這個工作。我不確定我原來的疑問是否是由於對光敏電阻或PWM的誤解。任何幫助將非常感激。謝謝!Arduino:在光敏電阻上使用analogRead()來讀取帶PWM的LED
這裏是我運行的代碼(我不使用analogWrite()函數,因爲我工作的項目,需要我有控制權的PWM一定水平):
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));
}