Lichttracker für die Solaranlage mit LEDs

Ich habe hier ein Sketch gebastelt, welches mit Hilfe von LEDs bestimmen soll, aus welcher Richtung mehr Licht kommt. Ich plane nämlich einen Sonnentracker für die Solaranlage auf dem Wohnwagen zu bauen...

fündig bin ich hier geworden: http://netaddict.de/blinkenlights:led-sensor

Habe dann den Code ein wenig angepasst und nun sollte nur noch die Ansteuerung an die entsprechende Stelle eingefügt werden. Hat aber ja mit dem Auswerten nichts zu tun. Hoffe jemand erfreut sich daran! :slight_smile:

const int ledPin1 = 11;
const int ledPin2 = 10;
unsigned long s1 = 0;
unsigned long s2 = 0;

void setup() {
  // initialize serial communication
  Serial.begin(9600); 
}

void loop() {
  
  // set pin to output
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);

  //charge LED  
  digitalWrite(ledPin1, HIGH);
  digitalWrite(ledPin2, HIGH);
  delay(1);
  
  // set pin to input
  pinMode(ledPin1,INPUT);
  digitalWrite(ledPin1, LOW);
  
  // count time while discharging ledPin1
  s1=millis();
  while(digitalRead(11)==HIGH){
    if (millis()-s1 > 30){
      break;
    }
  };
  s1=millis()-s1;

 // set pin to input
  pinMode(ledPin2,INPUT);
  digitalWrite(ledPin2, LOW);
  
  // count time while discharging ledPin2
  s2=millis();
  while(digitalRead(10)==HIGH){
    if (millis()-s2 > 30){
      break;
    }
  };
  s2=millis()-s2;
  

int diff = s1 - s2;

  //if s1 - s2 = 0 (same value) do nothing
  if(diff != 0) {
    if(diff > 0){
      Serial.println("<--");
      //turn motor in one direction
    } else {
      Serial.println("-->");
      //turn motor in one direction       
    }
  }
  
  delay(500); //wait some time

}

Die Konsole gibt dann, je nach dem, welche LED mehr angestrahlt wird, einen Pfeil aus... das sieht etwa so aus:

-->
-->
-->
-->
-->
<--
<--
<--
<--
<--
-->
-->

Man könnte auch feststellen, welcher LEDpin zuerst LOW wird.

Man könnte auch feststellen, welcher LEDpin zuerst LOW wird.

Klingt nach einer guten Idee, kannst du dafür ein wenig Sketch Posten?

MfG