LED als Lichtsensor

Moin allerseits

Da ich keine Lichtsensoren habe, bin ich auf dass hier aufmerksam geworden.
Probiert und getestet, alles schön und gut.
Meine Frage nun, ist es auch möglich weniger als 4 PINs zu verbrauchen?
Habe mal dies hier probiert, funktioniert auch halbwegs. Problem nur, dass es eher ein Bewegungsmelder mit Lichtsensor ist :smiley:
Wenn ich in der nähe von der LED oder SENSOR etwas hinlege, leuchtet die LED.

static int LED1=6; //Sensor -an Pin6 +an GND
static int LED2=13; // LED -an GND +an Pin13
void setup()
{
  pinMode(LED2,OUTPUT);
}
 
void loop()
{
  unsigned long zeit;
  pinMode(LED1,OUTPUT);
  digitalWrite(LED1,HIGH);
  pinMode(LED1,INPUT);    
  digitalWrite(LED1,LOW); 

  zeit=millis();
  while(digitalRead(LED1)==HIGH);
  zeit=millis()-zeit;

  if(zeit<1)
    {
    digitalWrite(LED2,HIGH); // Die zweite LED an
    }
  else
    {
    digitalWrite(LED2,LOW);
    }
}
Pin 6   ___LED1 -   X   LED 1+ \\_____ GND
Pin 13 ___LED 2 +  X   LED 2- //

Dort könnte man höchstens noch schauen, ob du sogar GND weglassen könntest. Aber einen Pin sparen kannste damit nicht. Finde die Idee an sich aber Klasse :slight_smile:

skorpi08: Meine Frage nun, ist es auch möglich weniger als 4 PINs zu verbrauchen?

4 Pins verbraucht - wie zählst Du das?

static int LED1=6; //Sensor -an Pin6 +an GND
static int LED2=13; // LED -an GND +an Pin13

Wenn Du zwei LEDs anschließt an Pin-6, GND, Pin-13, GND sind vier Pins verbraucht, oder wie zählst Du?

Ich zähle so: GND zählt schon mal gar nicht, denn an GND kannst Du immer alles anschließen, was GND braucht, GND wird durch den Anschluß eines Bauteils nicht "verbraucht", da ist also schon mal gar nichts "verbraucht".

Und nun hast Du eine Sensor-LED an Pin-6. Und eine Leucht-LED an Pin-13. Die Sensor-LED an einem Pin verbraucht also exakt einen Pin! So what?

Du benötigst: a) Für eine LED, betrieben nur als Lichtsensor ==> 1 Pin b) Für eine LED, betrieben nur als LED ==> 1 Pin c) Für eine LED, die sowohl als Lichtsensor als auch als LED abwechselnd betrieben werden soll ==> 2 Pins d) Für zwei LEDs, von denen eine als Lichtsensor und eine zum Leuchten verwendet werden soll ==> 2 Pins

Außerdem benötigst Du einen besseren Sketch als den, den Du da aufgetan hast. Der Sketch versucht ja offenbar nur einen logischen Wert für "Hell" oder "Dunkel" zurückzuliefern und er liefert keine steigenden oder fallenden Werte mit zu- oder abnehmendem Lichteinfall zurück, so dass man die gewünschte Hell/Dunkel-Schwelle im Sketch überhaupt nicht selbst festlegen kann.

skorpi08: Da ich keine Lichtsensoren habe, bin ich auf dass hier aufmerksam geworden.

Wenn man alles liest, dann weiß man auch welche 4 Pins gemeint sind. Der Sketch in dem Link verbraucht 4 Pins. Der Sketch den ich gepostet hab, verbraucht zwar 2 Pins aber funktioniert nicht richtig. Mir ging es auch nicht darum, steigende oder fallende Werte zu erhalten auch wenns die Aufgabe vom Fotowiderstand ist.

d) Für zwei LEDs, von denen eine als Lichtsensor und eine zum Leuchten verwendet werden soll ==> 2 Pins

Also so wie in dem von mir geposteten Sketch? LED 1 PIN LED-Sensor 1 PIN

Oder jeweils 2 Pin? So wie in dem Link

skorpi08: Also so wie in dem von mir geposteten Sketch? LED 1 PIN LED-Sensor 1 PIN

Ja, ist so völlig korrekt.

skorpi08: Oder jeweils 2 Pin? So wie in dem Link

Kann man auch so machen. Dann kann man die LED im laufenden Betrieb sogar umprogrammieren und Du kannst dieselbe LED im selben Sketch zeitweise als Lichtsensor und zeitweise zum Leuchten verwenden. Dual-Use der LED als Lichtsensor UND als LED erfordert 2 Pins. Wenn die LED NUR LEUCHTEN oder NUR LICHT MESSEN soll, reicht ein einziger Pin zum Anschluss.

Dein Sketch ist übrigens völlig korrekt und funktionsfähig, abgesehen davon, dass die Hell-Dunkel-Schaltgrenze fest und nicht einstellbar ist und dass es daher von den angeschlossenen Bauteilen abhängt, bei welcher Lichtstärke geschaltet wird.

Low-Power LEDs haben übrigens nur einen schmalen Öffnungswinkel, in dem sie Licht abstrahlen, und genau so wie der Öffnungswinkel beim Abstrahlen von Licht begrenzt ist, ist es beim Betrieb als Lichtsensor auch: Die LED reagiert am allerstärksten auf Licht, das direkt von oben einfällt, oder allenfalls +/-15° seitlich.

Außerdem mußt Du darauf achten, dass die LED als Lichtsensor in Sperrichtung betrieben wird. D.h. die Anode (langes Anschlussbeinchen) der LED wird an GND angeschlossen. Wenn die LED nur als Lichtsensor dienen soll, kann der Vorwiderstand wahlweise auch weggelassen werden, er wird in dem Fall nicht benötigt, da in Sperrichtung durch eine Diode ja sowieso praktisch kaum ein Strom fließt.