Verbinden Sie einen Lichtsensor mit dem PC

Ich möchte einen Lichtsensor an meinen PC (seriell oder USB) anschließen und die Werte dieses Sensors auslesen.

Gibt es eine Möglichkeit, dies ohne einen Mikrocontroller zu tun?

Ich suche nach der billigsten Methode, um diese Funktionalität zu erreichen. Ich muss sagen, ich bin ein n00b in der Elektronik, also wäre ich für jede detaillierte Erklärung dankbar.

Danke.

Ein Mikrocontroller mit einer seriellen Schnittstelle, die ein analoges Signal liest, das die Lichtstärke darstellt, ist machbar.
@Kenny Ich suche nach der billigsten Methode.
ein $1 PIC kann das tun
phidgets.com/products.php?product_id=1127 wenn Sie nicht bauen möchten
Der uC wird die billigere und wahrscheinlich einfachste Lösung sein ... nein, das einfachste wäre, eine DAQ-Karte zu kaufen und direkt den Widerstand zu messen, aber es ist ziemlich teuer (> 200 $)
Damals, als PCs analoge Joystick-Anschlüsse hatten, wäre es kinderleicht gewesen. nun ja.

Antworten (5)

Günstig und einfach geht das mit einem "555" Licht-Frequenzumrichter.
Auf niedrige Frequenz einstellen und eine Leitung z. B. am RS232-Eingang oder RS232-zu-USB-Konverter ansteuern

Eine mögliche 555-Schaltung

Geben Sie hier die Bildbeschreibung ein

Von hier .
TLC555 hier.
Erhöhen Sie C1 auf eine niedrigere Frequenz.

Oder verwenden Sie hier 555 und zB LDR anstelle von R1 oder R2.
Von hier aus nicht viele andere Informationen.

Geben Sie hier die Bildbeschreibung ein


Legion 555 / Frequenz / RS 232 / ...


Licht-zu-Frequenz-Wandler-ICs der Serie TSL23x

TSL235 Datenblatt hier

Sehr niedrige Frequenz bei sehr schwachem Licht. Mit durchscheinendem "Filter" (zB Papier) abdecken, um den Pegel zu reduzieren, um zB 1 Hz zu erhalten.

Sparkfun TSL235R
Kevin Vermeer war vor 2 Jahren hier :-)
Noch ein Datenblatt

You Tube TSL230 ...

TSL23x-Lieferanten über FindChips

Der einfachste (aber nicht billigste!) Weg ist wahrscheinlich, eine Webcam zu verwenden und die Pixelwerte zu integrieren. Ich weiß nicht, wie viele Fehler es in diesem Prozess gibt, aber ich bin mir ziemlich sicher, dass es funktionieren könnte.

[Bearbeiten: Erweiterung von Oli Glasers Kommentar] Mir war vorher nicht aufgefallen, dass die Serie eine Option war. Der billigste Weg wäre, eine CdS-Fotozelle und einen Kondensator zu verwenden und die Zeitkonstante über die seriellen Steuerleitungen zu messen. Dies kostet ungefähr 1,50 $ für einen DE9-Stecker, eine Fotozelle und einen Kondensator in Einzelstückzahlen.

Der Haken ist, dass Sie, wenn Sie dies nicht unter DOS tun, einen Kernel-Treiber schreiben müssen, um das Lesen durchzuführen. Windows hat genug zu tun, dass Sie keine Latenz auf Millisekundenebene erhalten werden. Eine Alternative ist die Verwendung eines Kondensators mit sehr hohem Wert (z. B. etwa 1000 uF oder so). Meine Experimente mit NT und XP zeigen, dass eine Latenzzeit von 50 Millisekunden nicht unvernünftig ist. Wenn wir bei Verwendung eines 1.000-uF-Kondensators davon ausgehen, dass der durchschnittliche Widerstand der CdS-Zelle in dem von Ihnen gelesenen Bereich etwa 25 kOhm beträgt (ich habe vor einem Monat einen Code geschrieben, um genau dies auf einem AVR zu tun, und ich denke, das Licht in einem "durchschnittlichen "Raum übersetzt in etwa 25k), dann beträgt die Zeitkonstante 25 Sekunden. Das sollte Ihnen eine ausreichende Auflösung geben, selbst wenn das Lesen der seriellen Schnittstelle eine Ungenauigkeit von 100 Millisekunden aufweist.

Jetzt hast du mein Interesse geweckt :-) Ich muss versuchen, das zu programmieren. Frage mich, ob .NET dem gewachsen ist?

Habe das total vergessen. Basierend auf dieser Anfrage habe ich Folgendes implementiert: cedarlakeinstruments.com/blog/archives/10 Es verwendet Windows, um die Anstiegszeit einer CdS-Fotozellen-Kondensatorschaltung zu messen. Es ist überraschend wiederholbar.

Vielleicht möchten Sie Folgendes versuchen:

http://www.yoctopuce.com/EN/products/usb-sensors/yocto-light

Es ist nicht das billigste, aber es ist eines der einfachsten. USB, winzig, kein Treiber erforderlich, ziemlich viele Betriebssysteme und Programmiersprachen werden unterstützt. Und es verfügt über einen Datenlogger ...

Wenn Sie eine Reihe von Werten von Ihrem Lichtsensor lesen möchten (im Gegensatz zu Ein / Aus), benötigen Sie mehr als nur den Sensor selbst.
Wie Kenny sagt, kann ein uC von 1 $ dies ganz einfach erreichen. Der Code konnte in Minuten geschrieben werden.
Serieller Anschluss (oder USB / serielles Kabel) wäre einfacher als USB, obwohl offensichtlich nicht so "aktuell". Wenn es sich nicht um ein kommerzielles Projekt handelt, ist dies möglicherweise kein Problem.
Auch bei USB gibt es genügend Beispielprojekte für PICs/Atmel/etc, die schnell angepasst werden könnten.

Wenn Sie nur einen Ein / Aus-Sensor (dh Licht / kein Licht) wünschen, können Sie wahrscheinlich eine der seriellen Steuerleitungen (DSR oder CTS möglicherweise - siehe 9-polige serielle Pinbelegung ) als direkte Schnittstelle verwenden. Sie könnten eine der Ausgangssteuerleitungen (RTS, DTR) verwenden, um den Sensor mit Strom zu versorgen, und einen Transistor mit Widerstand / LDR-Teiler, um die Eingangssteuerleitung zu schalten.

Bedenken Sie auch Folgendes: Bei einer bestimmten analogen Schaltung oder einer diskreten Schaltung sind Sie zu einem bestimmten Verhalten gezwungen und können sie nur bis zu einem bestimmten Punkt anpassen.

Wenn Sie ein uC verwenden, ergeben sich mehrere Vorteile:

  • Eingebauter UART (oder sogar USB)
  • Nahezu grenzenlose Konfigurierbarkeit
  • Relativ hohe Zeit, um es zum Laufen zu bringen
  • Möglichkeit, viele Funktionen hinzuzufügen

Und wenn Sie so etwas wie FTDI- Chips verwenden, ist der Aufwand fast gleich Null, verwenden Sie einfach einen analogen Eingang (fast).