Baugleiche LDR geben verschieden Werte an verschieden Analog-Pins aus.

Ich möchte den Sensor-Wert von vier baugleichen LDRs messen. Das Problem ist, das die Sensor-Werte von Pin zu Pin unterschiedlich sind. Ich habe die Pins getauscht, heißt den ersten LDR in A3 etc. gesteckt, es hat sich nichts getan, die Werte sind an den Pins gleichgeblieben, aber trotzdem von Pin zu Pin unterschiedlich.
Ich habe versucht die Werte, ugf. auf denselben Wert zu multiplizieren, doch wenn ich den einen Sensor-Wert multipliziere, wird der andere auch größer.

Hier ist die Schaltung :

Diesen Code habe ich verwendet:

int LDR1 = A0;
int LDR2 = A1;
int LDR3 = A2;
int LDR4 = A3;

int LdrWert1 = 0;
int LdrWert2 = 0;
int LdrWert3 = 0;
int LdrWert4 = 0;

void setup() 
{
Serial.begin(9600);
}
void loop() {
LdrWert1 = analogRead(LDR1)
LdrWert2 = analogRead(LDR2)
LdrWert3 = analogRead(LDR3)
LdrWert4 = analogRead(LDR4)

Serial.println(LdrWert1); 
Serial.println(LdrWert2); 
Serial.println(LdrWert3); 
Serial.println(LdrWert4); 
delay(100);
}

Schau mal ins Datenblatt, wie hoch die Bauteiltoleranz ist :slight_smile:

zwieblum:
Schau mal ins Datenblatt, wie hoch die Bauteiltoleranz ist :slight_smile:

Ich habe leider kein Datenblatt.

Die konkret vorhandene Abweichung kannst du auch mit einem Multimeter und einer konstanten Lichtquelle ermitteln.

Nicht nur die LDRs haben Bauteiltoleranzen, auch die verwendeten Widerstände. Wenn du das Problem rechnerisch nicht auflösen kannst, bleibt dir eigentlich nur noch die Selektion einzelner Bauteile aus einer größeren Menge.

SombreroMan02:
Ich habe leider kein Datenblatt.

Dann nimm behelfsmäßig irgend ein anderes!

z.B. dieses

Das sagt zu den Differenzen:

20k bis 100k Ohm, bei 10 Lux
Das ist schon eine erhebliche Toleranz

Und auch bitte das Kapitel "Light memory characteristics" lesen

combie:
Dann nimm behelfsmäßig irgend ein anderes!

z.B. dieses

Das sagt zu den Differenzen:

20k bis 100k Ohm, bei 10 Lux
Das ist schon eine erhebliche Toleranz

Und auch bitte das Kapitel "Light memory characteristics" lesen

Das Kapitel werde ich mir durchlesen.

Hallo

Wenn die Werte gleich sein sollen wirst du für jeden Kanal eine Skalierung benötigen. Dazu wirst du je mindestens einen Multiplikator und einen Offset brauchen .

Ich würde jeweils zwei Messwerte nehmen bei unterschieflicher Beleuchtung und die und die mittels y=ax+b skalieren .

Klar der LdR ist nicht linear mit obigem Ansatz gehst du eigendlich von einer Linearen Kurve aus zwischen den beiden Messwerten , was ja nicht stimmt .

Wenn das nicht genau genug ist kannst du ja auch mehrere Messwerte nehmen und trägst die in eine Excell Tabelle ein. Da kannst du dir da eine genäherte Gleichung ausgeben lassen die du dann für jeden Kanal in in deinem Sketch verwendest.

Heinz

Nachtrag
Ich vergesse immer das es ja noch map() gibt , geht natürlich auch als lineare Näherung