Light to Frequency Sensoren

  • Ich möchte Lichtstärke detektieren und zwar diesesmal nicht analog (also mit Phototransistoren) sondern digital, naemlich mit Light-to-Frequency-Sensoren. Diese, z.B. TLS237 haben drei Beinchen, VCC, GND, und einen Frequenzausgang, wo eine Pulsfolge mit Frequenz proportional zur Lichtstaerke ausgegeben wird. Typischerweise 0.1 Hz bei Dunkelheit und 1 MHz bei "voll hell". 3.3v oder 5V ist kein Problem, also ein idealer Fall zur Anwendung am Pi.

    Bevor ich mir einen besorge, hat schon jemand Erfahrung damit, bzw. so einen Sensor am Pi angeschlossen? Kann man bei 1MHz den Pi selbst zum Frequenzzaehlen verwenden oder sollte man einen Hardware-Counter vorschalten (z.B. 74LV8154)? Insbesondere wenn man zwei Sensoren gleichzeitig betreiben will.

    Solche Sensoren scheinen mir ziemlich prima geeignet zu sein, insbesondere weil sie linear mit der Lichtstaerke gehen. Ausserdem kann man sie an einer langen Leitung betreiben, da die Information digital übertragen wird und Störungen kaum Einfluss haben.

    Was haltet Ihr davon?

  • An sich sollte das funktionieren. Bei den 1 MHz bin ich mir aber nicht ganz so sicher.

    Ich habe mir zur Frequenzauswertung mal folgendes angesehen: https://github.com/RaresPlescan/d…e/tsl235r/t13.c


    Die habe dort den TSL235R benutzt. Wenn ich das richtig sehe, ist das ein etwas anderer Type als deiner.


    Leider habe ich es aus Zeit mangel nie testen können.

  • Ja, so code würde mir vorschweben. Danke für den Link. Den kannte ich noch nicht. Ich hab ja zur Lichtmessung über die Entladezeit eines Kondensators den 1MHZ Timer des Pi benutzt. Man bekommt theoretisch eine Auflösung von 1µs hin, aber wegen der Taskwechsel im Betriebsystem kann man auch mal 10 bis 20 Mikrosekunden verpassen. Das merkt man dann zwar anhand des timerwertes, aber es verfälscht die Frequenzmessung bei den hohen Frequenzen. Andererseits kann ich die Messung beliebig häufig wiederholen, dann mitteln sich Fehler evtl. raus.

    Ich hab schon überlegt, einen Arduino zu verwenden, aber der kann zuverlaessig nur einen Pin zum Zählen verwenden und nicht zwei. Jedenfalls nicht wenn man keine Pulse übersehen will. Deshalb dachte ich an den externen Hardware-counter. Der kann bis 100 MHz. Allerdings stört mich der 8 Bit breite Auslesebus (verbraucht zu viele GPIOs). Vielleicht finde ich ja noch einen mit SPI oder I2C auslese. Ich benötige Zwei Zähler mir gemeinsamem Reset und gleichzeitigem Stop bzw. Latch.

  • von 1µs hin, aber wegen der Taskwechsel im Betriebsystem kann man auch mal 10 bis 20 Mikrosekunden verpassen.

    Du Optimist ... in freier Wildbahn kann das Scheduling durchaus mal > 1 ms ausmachen ;)

    Kommt - wie im richtigen Leben - u.a. auch auf die Auslastung an.

    cu,

    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!