Ich habe an einem Projekt mit Arduino gearbeitet und bin auf etwas gestoßen, das ich faszinierend/verwirrend finde. Also musste ich etwas testen, bevor ich dieses Projekt aufbaute. Ich habe eine einfache Schaltung gebaut, die nur aus einer LED und einem Fotowiderstand besteht. Was ich testen musste, war, ob der Fotowiderstand in der Lage war, die Helligkeit einer LED zu bestimmen, die durch PWM gedimmt wurde. Meine anfängliche Erwartung war, dass dies nicht funktionieren würde (der Fotowiderstand würde entweder 1023 oder 0 lesen, weil PWM digital erreicht wird). Zu meiner Überraschung konnte der Fotowiderstand die Helligkeit der LED genau ablesen (genau in gewissem Maße - dies beruht einfach auf dem Vergleich der scheinbaren Helligkeit der PWM-LED mit einer LED in Reihe mit einem bestimmten Widerstand)! Das ist genau das, was ich wollte, aber ich bin nur neugierig, warum das funktioniert. Ich bin mir nicht sicher, ob meine ursprünglichen Zweifel auf ein Missverständnis von Fotowiderständen oder PWM zurückzuführen waren. Jede Hilfe würde sehr geschätzt werden. Vielen Dank! HierArduino: Mit analogRead() auf Photowiderstand LED mit PWM lesen
ist der Code Ich verwende (Ich bin nicht mit der analogWrite() Funktion, weil das Projekt an dem ich arbeite mich erfordert ein gewisses Maß an Kontrolle über die PWM haben):
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));
}