Arduinoianer:
als meine Spannung ist glatt 5,1V. Aber naja ich bekomm das mit der Formel nicht auf die Reihe .... das ist mir einfach zu "hoch" 
Ich werd das Ding wohl in die Tonne hauen ....
In der Schule gefehlt als der Logarithmus dran war?
lineare Interpolation der Referenzspannungen nach Interpolation (Mathematik) – Wikipedia
Interpolation von Vref1
f0 = 1,08 V
x0 = 2,9 V
f1 = 1,52 V
x1 = 5,3 V
f(x=5,1)= 1,08 + (1,52-1,08)/(5,3-2,9) * (5,1-2,9) = 1,483
Vref1 bei 5,1V sind 1,483 Volt bei 25 lux.
Interpolation von Vref3
f0 = 1,91 V
x0 = 2,9 V
f1 = 2,35 V
x1 = 5,3 V
f(x=5,1)= 1,91 + (2,35 - 1,91)/(5,3-2,9)*(5,1-2,9) = 2,313
Vref3 bei 5,1V sind 2,313 Volt bei 0,27 lux
Wenn man die beiden Punkte auf logarithmisches Papier in einen Graphen mit x/y-Achsen einzeichnet:
A (0,27 lx | 2,313 V)
B (25 lx | 1.483V)
ergibt sich eine Gerade, für deren Steigungsdreieck gilt:
Delta y = y2-y1 = 1,482 - 2,313
Delta x = ln(25)-ln(0,27)
Steigung = (1,482 - 2,313)/ (ln(25)-ln(0,27)) = -0,1835
Und nachdem nun 2 Punkte der Geraden und die Steigung bekannt ist,
kann daraus jeder Punkt der Geraden ermittelt werden, da das Verhältnis
für Delty y / Delta x auf jedem Punkt der Geraden der Steigung entspricht.
Also
(y- 2,313)/(ln(x)-ln(0,27)) = - 0,1835
mit y= gemessenes Signal in Volt und x die gesuchte Beleuchtungsstäke.
Aufgelöst nach x durch Umformen
ln(x) = ln(0,27)+(y-2,313)/(-0,1835)
oder
x(UB=5,1V)= exp(ln(0,27)+(y-2,313)/(-0,1835))
Z.B. für y= 0,5V
x(UB=5,1V)= exp(ln(0,27)+(0,5-2,313)/(-0,1835))= 5275
Also bei 0,5 Volt 5275 lux, wenn die Betriebsspannung 5,1 Volt beträgt.
Übrigens nur bei 25°C, denn der Meßwert ist auch noch temperaturabhängig, was
meine Formel aber nicht berücksichtigt.
In der von Arduino verwendeten Library heißt die Funktion für den natürlich Logarithmus "log" und nicht "ln" wie in der Mathematik sonst üblich, d.h. wenn Du meine hergeleitete Formel auf Arduino-Code umsetzt, muß es heißen:
float luxWert, pinVoltage;
luxWert = exp(log(0.27)+(pinVoltage-2.313)/(-0.1835));
Code zum Ausgeben einer kleinen Wertetabelle über den seriellen Monitor:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
float luxWert, pinVoltage;
for(int i=20;i<=350;i++)
{
pinVoltage=i/100.0;
luxWert = exp(log(0.27)+(pinVoltage-2.313)/(-0.1835));
Serial.print(pinVoltage);
Serial.print(" V, ");
Serial.print(luxWert);
Serial.println(" lux");
}
}
void loop() {
// put your main code here, to run repeatedly:
}