Я работаю над проектом с Arduino и сталкиваюсь с чем-то, что я считаю увлекательным/запутанным. Итак, я должен был что-то проверить перед конструированием этого проекта. Я построил простую схему, состоящую только из светодиода и фоторезистора. То, что я должен был проверить, был ли фоторезистор способен определять яркость светодиода, который затемнялся через PWM. Мое первоначальное ожидание состояло в том, что это не сработало (фоторезистор либо прочитал бы 1023, либо 0, потому что PWM достигнут в цифровом виде). К моему удивлению, фоторезистор смог точно считывать яркость светодиода (точно до степени - это просто основано на сравнении кажущейся яркости светодиода PWM со светодиодом, установленным последовательно с определенным резистором)! Это именно то, что я хотел, но мне просто интересно, почему это работает. Я не уверен, что мои первоначальные сомнения были вызваны неправильным пониманием фоторезисторов или PWM. Любая помощь приветствуется. Спасибо!Arduino: Использование analogRead() на фоторезисторе для чтения светодиодов с PWM
Вот код, я бегу (я не использую функцию 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));
}