BPW 34 Fotodiode als Laserempfänger verwenden

Guten Tag liebe Gemeinde.

Ich versuche mit einem Arduino UNO und der Fotodiode BPW 34(Datenblatt siehe Anhang) die Höhenreferenz eines Bau-Rotationslaser (Tech.Daten siehe Anhang) abzugreifen.

Veruscht habe ich das mit folgendem gefundenem Beispiel:

Als Code habe ich folgendes verwendet:

/* Here is a bare-bones Arduino sketch to read the
   outputs of the photodiode detectors described
   in Figure 1 and Figure 2. The output pin of the
   circuit's opamp is connected to analog pin 0
   of the Arduino. The data are read every 0.1 second
   in this example. However, you can change the sampling
   rate by simply changing the argument of the
   delay() statement. */
 
#define inPin0 0
 
void setup(void) {
 
  Serial.begin(9600);
  Serial.println();
     
}
 
void loop(void) {
   
  int pinRead0 = analogRead(inPin0);
  float pVolt0 = pinRead0 / 1024.0 * 5.0;
  Serial.print(pVolt0);
  Serial.println();
   
}

(Quelle: DIY Science: Measuring Light with a Photodiode II | Outside Science)

Wenn ich da nun z.B. eine LED Lampe ranhalte erkenne ich ich eine Schwankung im Seriellen Plotter. Versuche ich das nun aber mit dem Baulaser bleibt die Linie konstant.
Wo könnte da der Fehler liegen?

Ich möchte dazu gerne erwähnen das ich absolut Laie auf dem Gebiet bin. Weshalb ich mich im vornhinein schonmal für etwaige facepalm-Momente entschuldige.

datenblatt-153005-osram-fotodiode-dil-1100-nm-60-bpw-34.pdf (156 KB)

Auf welcher Wellenlänge sendet der Laser?

Gruß Tommy

Laut Datenblatt: 635nm Sichtbar

Dann müsste er lt. Datenblatt von der Diode erfasst werden. Evtl. ist der Puls des Lasers zu kurz für Deine Messanordnung.

Gruß Tommy

Selbst habe ich die Diode bisher nicht eingesetzt, allerdings finde ich deine Schaltung sehr ungewöhnlich. Zumal der Widerstand parallel zur Diode liegt.

HotSystems:
Selbst habe ich die Diode bisher nicht eingesetzt, allerdings finde ich deine Schaltung sehr ungewöhnlich. Zumal der Widerstand parallel zur Diode liegt.

Die Anordnung habe ich mehrmals so im Netz entdeckt. Funktionieren tut sie eigentlich ja auch. Lichtquellen erkenne ich im Plotter. Nur der Baulaser wird nicht "erkannt".

Bevor ich eben meinen Post geschrieben habe, habe ich vorher selbst gegoogelt.
Allerdings diese Schaltung nicht gefunden, dafür viele andere.

Z.B. diese hier.

Edit:
Der Widerstand dämpft die Empfindlichkeit. Das kann dein Problem sein.

Da muss ich mir morgen erstmal Kondensatoren kaufen gehen um das zu testen.
Die Schaltung die ich oben gepostet habe funktioniert ja grundsätzlich. Ich erkenne z.B. auch schwankungen im Tageslicht durch Sonneneinstrahlung im Zimmer. Auch diverse andere Lichtquellen "sehe" ich im Plotter. Nur den Baulaser bleibt "unsichtbar". Daher vermute ich eher das da etwas nicht kompatibel ist.

Also gerne nochmal, deine merkwürdige Schaltung habe ich bisher noch nicht gefunden.
Daher solltest du es besser machen, damit die Diode nicht zusätzlich gedämpft wird.

Da es sich um einen Rotationslaser handelt, kommt der nur 5 bis 10 mal pro Sekunde an der Stelle vorbei an der gemessen wird. Er blitzt also nur ganz kurz auf und ist dann wieder dunkel. Du musst also extrem Glück haben wenn Du genau zu dem Zeitpunkt misst wenn er gerade vorbeikommt.

Gerade habe ich leider auch keine Idee wie man das erfassen könnte.

Gruß, Jürgen

Gerade habe ich leider auch keine Idee wie man das erfassen könnte.

Mit einem Oszi ansehen, was man überhaupt erhält?
Dann schauen, ob es digital zu erfassen geht? Oder ob die Pulse > 100 µs lang sind (das müsste dann auch analogRead können)?
Und was man stattdessen ohne den Laser sieht.

Also die Schaltung von oben hab ich jetzt aufgebaut und ausprobiert. Über den Sketch lese ich per analogRead() den Wert aus. Ich erhalte auch ein Wert aber der bleibt immer gleich (bei 92 oder 93), egal wie hell oder dunkel es ist.

michael_x:
Mit einem Oszi ansehen, was man überhaupt erhält?

Die Möglichkeit habe ich leider nicht.

D4xX6:
Also die Schaltung von oben hab ich jetzt aufgebaut und ausprobiert. Über den Sketch lese ich per analogRead() den Wert aus. Ich erhalte auch ein Wert aber der bleibt immer gleich (bei 92 oder 93), egal wie hell oder dunkel es ist.

Die Möglichkeit habe ich leider nicht.

Welche Schaltung ?
Deine, die du gepostet hast ?

Ohne Oszi wird das schwer, einen Fehler zu finden.

HotSystems:
Welche Schaltung ?
Deine, die du gepostet hast ?

Ohne Oszi wird das schwer, einen Fehler zu finden.

Nein die Schaltung die du verlinkt hast.

Hat sonst jemand eine alternative Idee wie ich den Laser tracken kann? Grundsätlich muss es nicht über eine Fotodiode sein. Ich muss lediglich mit dem Arduino erkennen ob ich den Strahl kreuze oder nicht wie oder womit spielt keine Rolle. Es sollte nur nicht all zu teuer sein.

Mfg

D4xX6:
Nein die Schaltung die du verlinkt hast.

Wenn du die mit dem analogen Input meinst, dann hast du die Diode verkehrt herum angeschlossen, oder die ist schon kaputt.

D4xX6:
Hat sonst jemand eine alternative Idee wie ich den Laser tracken kann?

Zuerst würde ich mal nachprüfen, ob Deine Diode den Laser überhaupt erkennt (also kurz anhalten, damit er da mal draufleuchten kann).

Dann wäre u.U. ein Interrupt zu überlegen: Falls die Diode einen kurzen Puls beim Drüberfahren des Lasers auslöst, den Du mit dem A/D-Wandler nicht erkennst, kann der Interrupt den möglicherweise fangen. Lt. Datenblatt kann die ja 20ns auflösen.

Gruß Walter

Edit: Danach wird es m.E. schwierig. Was halten die Kollegen von einem externen Monoflop (CD4538)?

wno158:
Zuerst würde ich mal nachprüfen, ob Deine Diode den Laser überhaupt erkennt (also kurz anhalten, damit er da mal draufleuchten kann).

Leider nicht möglich. Ich kann den Laser nur einschalten, nach der automatischen Nivilierung fängt er an zu drehen.

D4xX6:
Hat sonst jemand eine alternative Idee wie ich den Laser tracken kann?

In meinem Link waren doch noch andere Schaltungen, hast du die mal probiert ?
Oder geprüft, ob die Diode falsch eingabeut ist ?

Hi,

wenn die Rotationsgeschwindigkeit des Lasers bekannt ist, kann man sich mal die Dauer ausrechnen, die so ein LaserPunkt über der lichtempfindliche Fläche der BPW34 verweilt, in Abhängigkeit der Entfernung zum Laser natürlich.
Ich habe im Hinterkopf, daß die Flügelspitzen von großen Windrädern problemlos Überschallgeschwindigkeit erreichen können.
Was hier helfen könnte ist ein Differentiator, also eine Schaltung mit einem OPV, der aus Nadelimulsen ein für den Arduino sichtbaren Rechteckimpuls macht, der dann auch an ein DigitalPin angeschlossen sein kann. Also mal nach Differentiator suchen.

Gruß André

SpaghettiCode:
wenn die Rotationsgeschwindigkeit des Lasers bekannt ist, kann man sich mal die Dauer ausrechnen, die so ein LaserPunkt über der lichtempfindliche Fläche der BPW34 verweilt, in Abhängigkeit der Entfernung zum Laser natürlich.
.....

Und der TO muss sich sicher sein, dass seine Schaltung überhaupt funktioniert.
Da habe ich bisher meine Zweifel.