Forum: Mikrocontroller und Digitale Elektronik CCD linear sensor


von Alex (Gast)


Lesenswert?

Ich möchte ein Spekrometer bauen und das Resultat der Optik mit einem
CCD linear sensor aufnehmen> Ansteuerung und Auslesen habe ich schon 
gemacht.
Als CCD linear sensor habe ich Sony ILX554B.Als Mikrocontroller Atmega 
644.

Als Ausgangswert bekonmme ich Vout(für jeder Pixel=2048) = 0.8V-3.8V 
(2048)

Wie kann man dieser Vout jetzt auswerten (als Spektralfarben 
interpritieren)?

Gibts vieleicht irgendwelche Literatur dafür?

Hoffe mir kann jemand helfen?

von M.N. (Gast)


Lesenswert?

Alex schrieb:
> Gibts vieleicht irgendwelche Literatur dafür?

Ja. Im aktuellen Funkamateur (06/2015) ist ein Projekt drin. Ebenfalls 
ein Literaturhinweis auf das Vorgängerprojekt aus dem Jahre 2010.

Sowie hier im Forum: Beitrag "PC-Spektrometer - Problem mit Linien-CCD (AVR)" sowie 
http://www.mikrocontroller.net/articles/Digitales_PC-Spektrometer

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Alex schrieb:
> Wie kann man dieser Vout jetzt auswerten (als Spektralfarben
> interpritieren)?

Die Position des Pixels auf dem Sensor hat mit der Spektralfarbe zu 
tun, die Spannung ist die Intensität ("Helligkeit").

Das ist jedenfalls so, wenn Du den Sensor so angeordnet hast, daß Dein 
Prisma rotes Licht auf das eine, und violettes Licht auf das andere Ende 
des Sensors projiziert.

von MaWin (Gast)


Lesenswert?

Alex schrieb:
> Wie kann man dieser Vout jetzt auswerten (als Spektralfarben
> interpritieren)?

Die Spannung hat ja nichts mit der Wellenlänge zu tun, ausser daß die 
Umwandlungseffizienz je nach Wellenlänge anders ist.

Du musst ein bekanntes Spektrum aufnehmen und weisst dann, welche Pixel 
zu welcher Wellenlänge passen.

Und mit der Empfindlichkeitskurve des Silizium multiplizieren wenn du 
Energien ermitteln willst.

Aber seit dem Digitalkameras billig sind, lohnt der Aufbau mit einem 
Linie-CCD nicht mehr, so lange man nur Spektren im sichtbaren Bereich 
messen will.

http://www.lehrer-online.de/eigenbau-spektrometer-mit-digicam.php

Hier steht auch was zur Kalibrierung.

von lrep (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> wenn Du den Sensor so angeordnet hast, daß Dein
> Prisma rotes Licht auf das eine, und violettes Licht auf das andere Ende
> des Sensors projiziert.

Und dazu brauchst du ein dispersives Element.
Entweder ein Prisma, oder ein reflektives oder ein transmissives 
Beugungsgitter.
Jedes davon hat Vor- und Nachteile, und die Optik ist die eigentliche 
Kunst beim Spektrometer.
Die Elektronik ist, bis auf Extremfälle, eher eine Fingerübung.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

@All: Danke auch von mir als Mitleser für Euer Feedback!

MaWin schrieb:
> Aber seit dem Digitalkameras billig sind, lohnt der Aufbau mit einem
> Linie-CCD nicht mehr

Ansichtssache. Eine Digitalkamera fest verbauen? Oder ständig aus- und 
einbauen? Ich finde es schöner, wenn das komplette Spekrometer in die 
Hemdentasche passt.

MaWin schrieb:
> Hier steht auch was zur Kalibrierung

Für die Wellenlänge, ja. :-)

Und für die spektrale Empfindlichkeit würde ich mit Sonnenlicht 
(planckscher Strahler) anfangen. Irgendwo habe ich mal 'ne Tabelle mit 
Jahreszeit, Breitengrad und Farbtemperatur gesehen.

Alex schrieb:
> Ich möchte ein Spekrometer bauen
Ich auch.

Alex schrieb:
> Als CCD linear sensor habe ich Sony ILX554B
Davon habe ich seit November 2014 auch drei Stück. Passt! :-)

lrep schrieb:
> Beugungsgitter

Ich habe das hier aus dem Astroshop:
http://astromedia.eu/Bastelspass-der-Wissen-schafft/Das-Handspektroskop::132.html

PS:
Bei rakuten.de und astromedia.eu gibt es die Durchlicht-Beugungsgitter 
mit 1.000 Linien pro mm in der Größe für vier Dias. Wegen des Portos 
könnte sich eine Sammelbestellung lohnen, die Folie könnten wir 
geschickt klein schneiden; es muss hierfür ja kein ganzes Dia sein.

PPS: Meine Zusammenfassung unter:
https://github.com/TorstenC/Notizblog/wiki/Digitales-Spektrometer

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

@Alex: Was hast Du als Spalt verwendet bzw. was willst Du als Spalt 
verwenden?

M.N. schrieb:
> Im aktuellen Funkamateur (06/2015) ist ein Projekt drin. Ebenfalls
> ein Literaturhinweis auf das Vorgängerprojekt aus dem Jahre 2010.

Meinst Du den HF-Spektrumanalysator für Messungen bis 2 GHz? Selbst 
fernes Infrarot hat bereits 600GHz. Oder wie war der Hinweis gemeint?

Ansonsten: Hat jemand das Heft 'Funkamateur 11/2010'? Man könnte es zwar 
bestellen, aber trotz Paypal muss man dort erst einen Account erstellen. 
Über die Hürde müsste man erstmal springen.

Was wurde dort als Spalt verwendet?

Im Artikel Digitales PC-Spektrometer wurde Tonpapier mit einem etwa 
1mm breiten Spalt genutzt.

Wie wäre es mit einem Dia, vielleicht aus einer Bitmap-Datei von einem 
Belicher-Dienstleister?

Vielleicht könnte man auch gleich mehrere Schlitze auf das Dia machen, 
zum wechseln, je nach Lichtstärke und dem damit erreichbaren 
Auflösungsvermögen.

Z.B.: 0,2mm - 0,5mm - 1mm - 2mm

von M.N. (Gast)


Lesenswert?

Torsten C. schrieb:
> Meinst Du den HF-Spektrumanalysator für Messungen bis 2 GHz? Selbst
> fernes Infrarot hat bereits 600GHz. Oder wie war der Hinweis gemeint?

Nein, ich meine das optische Spketrometer vom Dr. Sander: 
"Messwerterfassung für das Spektrum des sichtbaren Lichts" Seite 630 
(ff.)

von Alex W. (serf55)


Angehängte Dateien:

Lesenswert?

Danke fürs ihre Antworten!

> Das ist jedenfalls so, wenn Du den Sensor so angeordnet hast, dass Dein
> Prisma rotes Licht auf das eine, und violettes Licht auf das andere Ende
> des Sensors projiziert.

Aber wenn man verschiedene Lichtquellen ausprobieren will dann 
funktioniert das nicht mehr(Lichtquellen haben unterschiedlichen roten 
Anteil von Spektrum schmales oder breiter)

Wofür ist Empfindlichkeit Graphik? bei ILX554B sieht man z.B. dass bei 
800nm Empfindlichkeit fast 0.2 – heißt es den Sensor kann nicht dieser 
licht von 800nm sehen?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Alex Werner schrieb:
> heißt es den Sensor kann nicht dieser licht von 800nm sehen?

Er kann 800nm sehen!
Nicht so gut wie 550nm, aber 'blind' ist er bei 800nm nicht.

http://www.filmscanner.info/Fotometrie.html sagt:
> In der Fotometrie wird Licht nicht nach seiner physikalischen
> Leistung oder Energie bewertet, sondern es wird die physiologische
> Helligkeitsempfindung des menschlichen Auges zugrunde gelegt.

Du musst also - je nachdem was Du ausgeben willst - eine Kennlinie 
überlagern (physikalisch/radiometrisch oder physiologisch).

Ggf. musst Du mehrere Kennlinien addieren.

Zur Kalibrierung der 'Spektral.png' dachte ich, wie gesagt, an einen 
planckschen Strahler^^ (Sonnenlicht). Was meint Ihr? Macht das Sinn?

: Bearbeitet durch User
von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
ich habe auch vor mir so eins zu bauen, mich würde interessieren, was 
deine Beweggründe waren einen ILX554B zu verwenden? Habe mich da mal vor 
2 Wochen ein bisschen eingelesen und dann ein paar Stück vom ILX554A 
bestellt, der hat meiner Meinung nach eine viel bessere spektrale 
Empfindlichkeit?

 Bzw. lässt sich die meiner Meinung besser(mit weniger Fehler) 
korrigieren,kann aber sein dass ich da falsch liege. Das Bild vom 554b 
hat eh schon jemand vor mir gepostet.

lg Thomas

von Alex W. (serf55)


Lesenswert?

> Zur Kalibrierung der 'Spektral.png' dachte ich, wie gesagt, an einen
> planckschen Strahler^^ (Sonnenlicht). Was meint Ihr? Macht das Sinn?

Ich habe mir gedacht zur Kalibrierung laserpointer verschiedene farben 
benutzen dann weißt man genau 'nm' und kann genau messen welche wert 
sensor ausgibt (in V).Dann kann man genauer Kalibrierung.

http://www.ebay.de/itm/2in1-LED-Laserpointer-Laser-Pointer-6-Farben-/301572618963?pt=LH_DefaultDomain_77&var=&hash=item463720fad3

Vieleicht wissen sie andere (günstigere) Möglichkeit?

von Alex W. (serf55)


Lesenswert?

Thomas schrieb:
> Hi,
> ich habe auch vor mir so eins zu bauen, mich würde interessieren, was
> deine Beweggründe waren einen ILX554B zu verwenden? Habe mich da mal vor
> 2 Wochen ein bisschen eingelesen und dann ein paar Stück vom ILX554A
> bestellt, der hat meiner Meinung nach eine viel bessere spektrale
> Empfindlichkeit?
>
>  Bzw. lässt sich die meiner Meinung besser(mit weniger Fehler)
> korrigieren,kann aber sein dass ich da falsch liege. Das Bild vom 554b
> hat eh schon jemand vor mir gepostet.
>
> lg Thomas

Ja dem wollte ich auch aber war nirgendwo zu kaufen.ILX554A ist 
natürlich besser.
Wo wollen sie ihm kaufen?

von Thomas (Gast)


Lesenswert?

Alex Werner schrieb:
> Ja dem wollte ich auch aber war nirgendwo zu kaufen.ILX554A ist
> natürlich besser.
> Wo wollen sie ihm kaufen?

Hi,
ja schaut so aus als wäre der schon vor längerem Eol, ich habe 10Stk zum 
experimentieren bei aliexpress bestellt und bereits erhalten, hab aber 
noch aus Zeitgründen nix damit machen können. Es besteht dort halt immer 
die Gefahr das man nicht das bekommt was draufsteht aber als Bastler bin 
ich das Risiko mal eingegangen :)  von diesem Händler habe ich bestellt, 
da muss man aber mit gut 3Wochen Lieferzeit rechnen.
http://de.aliexpress.com/item/ILX554A-CDIP-2048-pixel-CCD-Linear-Sensor-B-W-for-Single-5V-Power-Supply-Bar-code/675311438.html

lg Thomas

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Alex Werner schrieb:
>> Zur Kalibrierung der 'Spektral.png' dachte ich, wie gesagt, an einen
>> planckschen Strahler^^ (Sonnenlicht).
> Ich habe mir gedacht zur Kalibrierung laserpointer verschiedene farben
> benutzen

Nochmal: Wir reden von zwei verschiedenen Dingen:

a) Die Kalibrierung auf die Wellenlänge (Pixel-Zuordnung), da hatte
   MaWin^^ schon auf die Methode verwiesen, das Spektrometer mithilfe
   der bekannten Spektrallinien einer Energiesparlampe zu kalibrieren.
   Laser gehen auch, aber ob die genauer sind?

b) Die Kalibrierung der Emfindlichkeit als Kennlinie in Abhängigkeit
   der  Wellenlänge. Dafür (und nur dafür) hatte ich Sonnenlicht
   vorgeschlagen.

Thomas schrieb:
> ich habe 10Stk zum experimentieren bei aliexpress bestellt und
> bereits erhalten

Kann ich Dir eins abkaufen?
* Gegen xx€ oder
* gegen yy€ + ILX554B?

Mit yy < xx. ;-) Mir würde eines zum Vergleich reichen. Wenn ich PCBs 
bei OSH Park bestelle, sind es immer 3 Stück, dann hätte ich 2x ILX554B 
+ 1x ILX554A.

: Bearbeitet durch User
von lrep (Gast)


Lesenswert?

Torsten C. schrieb:
> Laser gehen auch, aber ob die genauer sind?

Frequenzverdoppelte grüne Laser (DPSS) sowie deren 808nm Pumpdioden beim 
richtigen Strom sind ok, aber sonst sind Laserdioden sind relativ 
ungenau und temperaturabhängeig.
Leider aber eignen sich Laser, auch die genauen Gaslaser, wie HeNe oder 
Kr+ oder Ar+ Ionenlaser, generell nicht besonders gut für Spektrometer, 
weil das koheränte Licht Probleme macht.
Am einfachsten sind wirklich die Linienspektren von Gasentladungslampen 
zu verwenden.

von butsu (Gast)


Lesenswert?

Es ist ja auch immer die Frage, wofür das Spektrometer hinterher 
verwendet werden soll. Wenn z.B. ein Spektrophotometer aufgebaut werden 
soll, kann einfach mit der verwendeten Lampe eine Untergrundmessung 
stattfinden.

Kalibrierung der Wellenlängen erfolgt wie oben beschrieben mittels 
Energiesparlampe o.ä.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

butsu schrieb:
> Untergrundmessung

Hmmm, irgendwie reden wir noch aneinander vorbei.

Mit der Untergrundmessung ermittelst Du m.E. das Grundrauschen bzw. die 
unterschiedlichen Empfindlichkeiten von Pixel zu Pixel.

Aber z.B. 3mV bei Blau sind halt 'ne andere Helligkeit als 3mV bei Grün, 
also so wie in ilx554a.JPG^^ oder ilx554b.JPG^^ zu sehen.

Natürlich hat hinter dem Beugungsgitter jeder Pixel seine eigene 
zugeordnete Wellenlänge. Es muss also nicht für alle Wellenlängen und 
jeden Pixel ein ganzes Kennfeld aufgebaut werden. Aber wenigstens
eine Kennlinie. Oder?

Wie erstellt man diese Kennlinie? Misst man die o.g. Kurve aus dem 
Datenblatt mit einem Lineal auf Papier aus und überträgt die Werte in 
ein Array? Oder wie würest Du die spektrale Empfindlichkeit zur 
Kalibrierung ermitteln, wenn nicht mit Sonnenlicht?

: Bearbeitet durch User
von lrep (Gast)


Lesenswert?

Torsten C. schrieb:
> Wie erstellt man diese Kennlinie?

Wenn du Absorption messen willst, brauchst du eigentlich nur die 
Wellenlänge zu kennen.
Ausreichende Intensität bei der Messwellenlänge muß vorhanden sein und 
stabil, aber der absolute Betrag ist unwichtig.

Emissionsmessungen sind schwieriger, weil man dafür Normlichtquellen 
braucht.
Da verlässt man sich vielleicht am einfachsten auf die vom 
CCD-Hersteller angegebene Empfindlichkeitskurve, und darauf, dass die 
optischen Bauteile im interessierenden Bereich nicht gefärbt sind.

Mit den Gitterfolien aus Kunststoff kann man ohnehin nicht im UV messen, 
weil dort mit Sicherheit starke Absorptionsbanden liegen.
Außerdem besteht da die Gefahr, dass Identifikation der Wellenlänge 
nicht mehr eindeutig ist, weil die 2. Beugungsordnung auf den Chip 
wandert.

Die von der Wellenlänge abhängige Absorption (und Brechungsindex) der 
verschiedenen Materialien ist auch der Grund, weshalb in kommerziellen 
Spektrometern i.d.R. keine Transmissionsgitter sondern Reflexionsgitter 
und keine Linsen, sondern Oberflächenspiegel verwendet werden.
Ausnahmen bestätigen die Regel, aber dann bestehen die durchstrahlten 
Bauteile aus mehr oder weniger exotischen Materialien, wie Quarz, 
Calciumfluorid, Steinsalz etc..

Ansonsten ist hauptsächlich die Linearität des Detektors wichtig.
Die Pixels des CCD selbst werden sich linear verhalten, solange sie 
nicht überbelichtet werden, aber der Ausleseverstärker hat evtl. einen 
Linearitätsfehler.
Die Linearität kann man sogar mechanischen Mitteln, wie Blenden oder 
Drahtgittern kontrollieren.

Schwache Lichtintensitäten kann man mit langen Belichtungszeiten messen, 
aber da kann das thermische Rauschen störend wirken. Dagegen hilft es 
den Detektor mit einem Peltierelement zu kühlen.
Aufpassen, dass sich dabei kein Kondenswasser auf dem Fenster des 
Detektors und seinen Anschlüssen(!) bilden kann.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

@Thomas(Gast): Kannst Du mir bitte eine PN schicken?

lrep schrieb:
> Emissionsmessungen sind schwieriger, weil …
Ja genau das war meine Frage! :-)

Die vom Hersteller angegebene Kurve mit einem Lineal (Bildbe-
arbeitungsprogramm mit Messen-Funktion) in ein Array wandeln?
Meinst Du wirklich?

Bei einer Schwarzer-Körper-Kalibrierung würde man auch die sonstigen 
optischen Bauteile im Gesamtsystem berücksichtigen und hätte eine 
individuelle Kennlinie für seinen Sensor und keinen 'allgemeinen 
Durchschnitt'.
Das macht für mich erstmal mehr Sinn. Sehe ich das falsch?

lrep schrieb:
> keine Transmissionsgitter sondern Reflexionsgitter

Ist ein CD-Rohling geeignet? Ich kann mir vordtellen, dass es was 
besseres gibt. Aber was? Und wo kann man das kaufen?

lrep schrieb:
> Mit den Gitterfolien aus Kunststoff kann man ohnehin nicht im UV messen,
> weil dort mit Sicherheit starke Absorptionsbanden liegen.

Die Absorptionskurve könnte man bei der Schwarzer-Körper-Kalibrierung ja 
erfassen und in gewissen Grenzen korrigieren.

> Außerdem besteht da die Gefahr, dass Identifikation der Wellenlänge
> nicht mehr eindeutig ist, weil die 2. Beugungsordnung auf den Chip
> wandert.

Ich habe noch keinen Preisvorstellung von Reflexionsgittern. Aber 
falls Reflexionsgitter vieiel teurer sein sollten, könnte man die 2. 
Beugungsordnung vom gemessenen Signal doch wieder abziehen. Oder?

lrep schrieb:
> keine Linsen, sondern Oberflächenspiegel

Am einfachsten wäre, wenn man im Lasercutting-Gehäuse einen 
Parabel-Schlitz erzeugt und dann ein gebogenes federndes Blech in den 
Schlitz steckt.

Oder wie würdet Ihr das machen?

Welches Spiegel-Blech käme in Frage?

Siehe auch
* Beitrag "CAD-SW für Laser Cut Objekte"
* Beitrag "Best Practise Acryl-Gehäuse/-Verbau"

: Bearbeitet durch User
von lrep (Gast)


Lesenswert?

Torsten C. schrieb:
> Die vom Hersteller angegebene Kurve mit einem Lineal (Bildbe-
> arbeitungsprogramm mit Messen-Funktion) in ein Array wandeln?
> Meinst Du wirklich?

Zum Bleistift.
Präzisionsmessungen werden das mit einem klapperigen Aufbau aus 
Heißkleber und Pappkarton sowieso nicht werden.


Torsten C. schrieb:
> Bei einer Schwarzer-Körper-Kalibrierung würde man auch die sonstigen
> optischen Bauteile im Gesamtsystem berücksichtigen

Wohnst du in Braunschweig und hast gute Kontakte zur PTB?
Dann mach das so.
Der Wolframdraht in gewöhnlichen Glühlampen ist ein einigermaßen grauer 
Strahler, und man kann seine Temperatur über den elektrischen Widerstand 
einigermaßen abschätzen, aber genau geht anders.
Andere Strahler, für die der Bastler ein Thermometer hat, werden nicht 
heiß genug um nennenswerte Mengen kurzwelligen Lichts zu emittieren, und 
wie schwarz sie in der Gluthitze sind, weiß man i.d.R. auch nicht.

Torsten C. schrieb:
> Ist ein CD-Rohling geeignet?

Eher nicht.
Dafür gibt es mehrere Gründe.
Zum Ersten ist auch das kein Oberflächenspiegel, das Licht müsste dort 
also sogar zweimal durch 1,6mm Kunststoff,
zum Zweiten befindet sich auf der Reflexionsschicht ja ein 
absorbierender Farbstoff, sonst könnte man die CD gar nicht brennen, und
zum Dritten ist die Spur gar nicht so exakt gleichmäßig, wie es den 
Anschein hat, sondern sie schlängelt sich absichtlich etwas hin und her, 
wodurch im Servoverstärker ein, iirc, 25kHz Fehlersignal ensteht, das 
zur Regelung auf die richtige Geschwindigkeit dient.

Torsten C. schrieb:
> Aber falls Reflexionsgitter
> vieiel teurer sein sollten, könnte man die 2. Beugungsordnung vom
> gemessenen Signal doch wieder abziehen. Oder?

Reflexionsgitter sind deutlich teurer und genauer, denn dort wird ein 
sehr präzises Gittermuster auf eine etliche Millimeter dicke Glasplatte 
aufgebracht und anschliessend mit Aluminium bedampft.
Subtrahieren kannst du die 2.Ordnung nicht, weil sie das Spektrum 
1.Ordnung überlagert und man es ja i.d.R. mit vielen Linien zu tun hat.

Es gibt aber Gitter, die absichtlich wenige Linien/mm haben und bis zu 
hohen Ordnungen, über 80, betrieben werden um hohe Auflösung zu 
erzielen.
Dabei überlagern sich viele Ordnungen, und um dieses "Kuddelmuddel" 
aufzulösen, zieht man das das Spektrum mit einem Quarzprisma 
bescheidener Auflösung senkrecht auseinander.
Das Bild, das dabei entsteht, kannst du z.B. hier sehen:
http://de.wikipedia.org/wiki/Echellegitter

Mit so einem Echelle-Spektrometer, dessen Gitter nur 69 Linien/mm 
besass, habe ich mal zwei nur 6pm voneinander entfernte Eisenlinien bei 
2xy nm sauber voneinander getrennt.
Deshalb musste ich etwas schmunzeln, als ich im anderen Thread dies las:
I_ H. schrieb:
> Auf einem anderen Bild hatte ich Linienbreiten von 500pm, und da müsste
> noch ein bisschen was gehen (vll 300..400). Insgesammt scheint das neue
> Spektrometer also zu funktionieren.
>
> Viel mehr macht dann aber glaub ich auch keinen Sinn mehr. Von der
> relativen Genauigkeit her dürften sehr gute Laborspektrometer auch nicht
> viel besser sein,



Torsten C. schrieb:
> Welches Spiegel-Blech käme in Frage?
Gar keines.
Wie gesagt, sind bestehen die Gitter und Spiegel aus mit Aluminium 
bedampften Glas.

Gib dir nicht allzu viel Mühe damit. Die professionellen Spektrometer 
sind verwindungssteife schwere Metallkisten mit Thermostatisierung, und 
Lage und Winkel der optischen Elemente werden mittels Justierschrauben 
fein justiert.
Die billigen Gitterfolien werden wohl stets wellig oder krumm und 
schlecht justiert sein, und dann kann werden sie eben ungefähr das 
leisten, was man mit dem Pappschachtel-Spektrometer sehen kann, - aber 
auch nicht mehr.

von Torsten C. (torsten_c) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Thomas(Gast): Kannst Du mir bitte eine PN schicken?

lrep schrieb:
> Präzisionsmessungen werden das mit einem klapperigen Aufbau aus
> Heißkleber und Pappkarton sowieso nicht werden.

Danke für Deine Antworten. :-) Aber wieso Pappkarton? Mit einer 
Verwindungs-steifen Konstruktion aus verklebten Lasercutting-Teilen 
(3D-Puzzle) kann man die 2048 Pixel sicherlich sinnvoll nutzen. Metall 
oder Kuststoff ist ja nur eine Kosten-Frage. Der Bauplan kann nahezu 
identisch sein.

Um den CRI oder CQS abzuschätzen oder zu unterscheiden, ob ein Chinese 
die LEDs in der versprochenen Wellenlänge geliefert oder verbaut hat, 
wird's schon reichen. ;-)

Ich denke:
So genau wie möglich für ca. 25€ bis 30€, um sich am CCD-Preis zu 
orientieren.

@Alex Werner:
* Möchtest Du ein Präzisionsmessgerät bauen?
* Spiegel oder Linse? Was hast Du vor?
* Reflexionsgitter oder Durchlicht-Beugungsgitter?

Ich habe mal die Funkamateur-Hefte bestellt. Kein Paypal, sondern 
Vorkasse. Wie im letzten Jahrtausend.

Egal, vielleicht kommen wir damit weiter! :-)

PS: Interessante Links:
http://www.kruschwitz.com/cri.htm (CRI berechnen)
http://de.wikipedia.org/wiki/Farbqualit%C3%A4tsskala

> Mit dem steigenden Anteil an LED-Lichtquellen wurden Änderungen der
> Farbmetrik nötig, da der Farbwiedergabeindex bestimmte LED-Lichtquellen
> gegenüber anderen Lichtquellen benachteiligt.

Woher bekommt man so eine CQS-Testkarte?

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Angehängte Dateien:

Lesenswert?

In ebay 310669323257 ist ein Sony ILX511 drin.
Warum?
Ist der besser?
http://www.spectralproducts.com/sm200400
http://de.aliexpress.com/item/-/1792883555.html (€11,23/Stück)

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

MaWin schrieb:
> Aber seit dem Digitalkameras billig sind, lohnt der Aufbau mit einem
> Linie-CCD nicht mehr

OK, geht auch, da muss ich Dir Recht geben: Das ist zwar auch nur ein 
'klapperiger Aufbau aus Heißkleber und Pappkarton'^^, aber einer für die 
Hemdentasche:
http://publiclaboratory.org/wiki/smartphone-spectrometer

Keine Ahnung, ob man mit dem CCD präziser wird. Ich denke schon.

Aber es gibt auch schon wieder was Neues, weder mit Digitalkameras  noch 
mit CCD-Streifen, den C12666MA:

http://image-sensors-world.blogspot.de/2014/12/hamamatsu-predicts-rise-of-consumer.html
> a new compact and cost-effective spectrometer for consumer applications

http://www.hamamatsu.com/resources/pdf/ssd/c12666ma_kacc1216e.pdf

Der wäre mir und sicher auch dem TE aber noch zu teuer:
https://www.tindie.com/products/PureEngineering/arduino-c12666ma-micro-spectrometer-/

: Bearbeitet durch User
von Erik Werner (Gast)


Lesenswert?

Hallo .
Ich hab versucht Sony ILX554B Auszulesen aber kriege immer wieder fast 
gleiche Werte  bei jedem Pixel(2,85V bei der Dunkelheit). Beim Spektrum 
(egal welchem entweder 0,5V(jeder Pixel) oder 2,1V(jeder Pixel)).
Sieht so aus als ob er nur 1 Pixel 2048Mal ausliest und ausgibt.
Belichtungszeit bei mir ist 4,2ms() und Auslesungzeit  ist  417ms(Weil 
ADC zu langsam ist)
Ich hoffe dass mir jemand helfen kann.

von Pandur S. (jetztnicht)


Lesenswert?

Das Auslesen sollte im Datenblatt beschrieben sein. Das timing muss 
eingehalten werden, sonst ist eh nichts. Ueblicherweise macht man bei 
jedem Pixel wieder eine Referenzmessung, da nur die Differenz gemessen 
werden kann. Moeglicherweise auch nicht mehr.

von Erik Werner (Gast)


Lesenswert?

Jetzt N. schrieb:
> Das Auslesen sollte im Datenblatt beschrieben sein. Das timing
> muss
> eingehalten werden, sonst ist eh nichts.
Das macht er sicher (Ich habe mit Osziloskop gemessen)


 Ueblicherweise macht man bei
> jedem Pixel wieder eine Referenzmessung, da nur die Differenz gemessen
> werden kann. Moeglicherweise auch nicht mehr.

Referenzmessung macht er auch (wie in Datenblatt jedes mal wenn flanke 
clk oben ist(und unten als dummy auslesung).

von Erik Werner (Gast)


Lesenswert?

Kann sein das Sensor kaputt ist?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Hast Du das Problem nur bei den ersten Messungen oder dauernd?
Ich frage, wegen:
> Normal output signal is not obtained immediately after device switch on.
> Use the output signal added 22500 pulses or above to φCLK clock pulse.

Hast Du mal mit S/H (Pin 4) beide Varianten ausprobiert, nur mal um den 
Fehler einzukreisen?

: Bearbeitet durch User
von karadur (Gast)


Lesenswert?

Hallo

du musst viel schneller auslesen. Während du ausliest wird der CCD 
belichtet und "läuft" voll.  Deswegen die vielen Dummytakte.

Wenn du kontinuierlich belichten und auslesen willst dann muß in der 
Belichtungszeit deine Zeile ausgelesen sein.

Bei einzelnen Zeilen musst du immer die Ladung der "Vorgeschichte" 
entfernen.

Wenn du ROG setzt ist die Ladung im CCD das summierte Signal aus der 
Zeit vor ROG. Die musst du "raustakten" z.B.  mit 1MHz.
Mit dem nächsten ROG ist die Belichtungszeit der Abstand zum letzten 
ROG.

Ob der CCD die Ladung 400ms halten kann weiß ich nicht.

von Erik Werner (Gast)


Lesenswert?

karadur schrieb:
> Hallo
>
> du musst viel schneller auslesen. Während du ausliest wird der CCD
> belichtet und "läuft" voll.  Deswegen die vielen Dummytakte.
>
>
Was meinen Sie mit schneller.Ich meine wie schnell muss Auslesungzeit 
sein?
In datenblatt steht dass muss nicht schneller als 2Mhz sein aber wie 
langsam kann es sein steht nichts.Deswegen gehe ich davon aus dass man 
"so lange wie man will" auslesen kann.

Ich mache so:
ROG Belichtungzeit(4,2ms=2100*2µs)ROG..ROG..Auslesung(400ms)..ROG

Oder kan man zuerst Sensor belichten lassen und dann Auslesen geht das 
auch?
Wo kann man das genauer nachlesen?
Was bedeutet Integrationzeit ist das nicht Belichtungzeit?

von Erik Werner (Gast)


Lesenswert?

Torsten C. schrieb:
> Hast Du das Problem nur bei den ersten Messungen oder dauernd?
> Ich frage, wegen:
>> Normal output signal is not obtained immediately after device switch on.

>
> Hast Du mal mit S/H (Pin 4) beide Varianten ausprobiert, nur mal um den
> Fehler einzukreisen?

Ich habe dieser Problemm ständig.Und ich habe beide varianten 
ausprobiert Ergebnis ist gleich.
>> Use the output signal added 22500 pulses or above to φCLK clock pulse.
Dieser auch.Ich habe sogar 30000 pulses.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

BTW mal 'ne Frage an Erik Werner:

Welchen ADC nutzt Du? 0 bis 3,3V müssten doch reichen, oder? Ich mache 
gerade ein PCB-Layout für den STM32F103R8T6 (12 Bit und getrennte 
Versorgung für den Analog-Teil) und ich frage lieber nochmal nach.

Erik Werner schrieb:
> Oder kan man zuerst Sensor belichten lassen und dann Auslesen geht das
> auch?

Ja, während Du ausliest, wird die nächste Belichtung gemacht. Falls der 
ADC langsam ist:

* erstmal schnell auslesen (am besten mehrfach)
* das letzte "auslesen" ist die letzte Belichtung
* dann langsamer (die letzte Belichtung) auslesen.

So habe ich es jedenfalls verstanden.

> Wo kann man das genauer nachlesen?

Das müsste eigentlich ein Grundprinzip der CCDs sein:
https://en.wikipedia.org/wiki/Charge-coupled_device

Erik Werner schrieb:
>>> Use the output signal added 22500 pulses or above to φCLK clock pulse.
> Dieser auch. Ich habe sogar 30000 pulses.

Mit 1MHz?

Allein die "thermische Strahlung" füllt Dir bei Dunkelheit die 
'Kondensatoren' in den CCD-Elementen, wenn Du zu langsam ausliest.

karadur schrieb:
> Ob der CCD die Ladung 400ms halten kann weiß ich nicht.

Dort sind quasi 2048 einstufige "Eimerketten" drin, oder?

: Bearbeitet durch User
von Erik Werner (Gast)


Lesenswert?

Ich nutze ADC von Atmega 1284P Ich habe ADC auf 156kHz eigestellt(6µs*13 
Zyklen=83µs(Convesiontime))

Torsten C. schrieb:
> BTW mal 'ne Frage an Erik Werner:
>
> Welchen ADC nutzt Du? 0 bis 3,3V müssten doch reichen, oder? Ich mache
> gerade ein PCB-Layout für den STM32F103R8T6 und ich frage lieber nochmal
> nach.

Ich nutze ADC von Atmega 1284P Ich habe ADC auf 156kHz eigestellt(6µs*13 
Zyklen=83µs(Convesiontime)).Er ist leider extrem langsam.


> Das müsste eigentlich ein Grundprinzip der CCDs sein:
> https://en.wikipedia.org/wiki/Charge-coupled_device

Da steht leider nichts über Belichtungzeit.

> Erik Werner schrieb:
>>>> Use the output signal added 22500 pulses or above to φCLK clock pulse.
>> Dieser auch.Ich habe sogar 30000 pulses.
>
> Mit 1MHz?
Muss man unbedingt mit 1MHz. Ich habe schneller gemacht mit 10MHz(20Mhz 
Quarz)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Erik Werner schrieb:
> Ich habe schneller gemacht mit 10MHz

Datenblatt: Maximum clock frequency: 2MHz

Halt möglichst schnell, aber nicht über der "Maximum clock frequency".

Erik Werner schrieb:
>> 0 bis 3,3V müssten doch reichen

Saturation output voltage ~ 1V

Mehr hast Du auf deinem Oszi auch nicht, oder?

Erik Werner schrieb:
> Belichtungzeit

Je länger Du belichtest, desto mehr Elektronen sammeln sich an.

: Bearbeitet durch User
von Erik Werner (Gast)


Lesenswert?

Torsten C. schrieb:
> Erik Werner schrieb:
>> h habe schneller gemacht mit 10MHz
>
> Datenblatt: Maximum clock frequency: 2MHz
>
> Halt möglichst schnell, aber nicht über der "Maximum clock frequency".
>
> Erik Werner schrieb:
>>> 0 bis 3,3V müssten doch reichen
>
> Saturation output voltage ~ 1V


> Mehr hast Du auf deinem Oszi auch nicht, oder?
Nein ich kriege bei der Dunkelheit 2,85V(Erste Pixel) und 2,4V (2048 
Pixel).
Wenn ich versuche Spektrum zu messen dann entweder wird mein sensor 
schnell  "Überlichtet" 3,5V(Alle Pixel) oder wird Wert aus erstem Pixel 
2048 Mal Ausgelesen.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

> Saturation output voltage: Typ. 1,0V

Erik Werner schrieb:
> "Überlichtet" 3,5V(Alle Pixel)

Verstehe ich nicht.
Es wird Zeit, dass ich meinen CCD auch mal in Betrieb nehme.

Erik Werner schrieb:
> Wenn ich versuche Spektrum zu messen

Benutzt Du ein Prisma oder ein Gitter?

Einen Spiegel oder eine Linse? Welchen/welche?

Aus Interesse, weil ich noch unschlüssig bin.

: Bearbeitet durch User
von Erik Werner (Gast)


Lesenswert?

Ich benutze ein Gitter  1.000 Linien pro mm.

http://astromedia.de/Material-fuer-Selbermacher/OPTI-Media-Filterfolien/Das-Durchlicht-Beugungsgitter::153.html

Linse => 2 linsen vergütet  von Astromedia



Wenn 2MHz nimmt dann kriegt man 50ns => 50ns*2087 1ms fürs auslesung und 
ich gehe davon aus das ist max Belichtungzeit oder?
Wie schnell muss dan ADC sein?

von lrep (Gast)


Lesenswert?

Erik Werner schrieb:
> In datenblatt steht dass muss nicht schneller als 2Mhz sein aber wie
> langsam kann es sein steht nichts.Deswegen gehe ich davon aus dass man
> "so lange wie man will" auslesen kann.

Das hängt stark von der Temperatur und von Unregelmäßigkeiten im 
Silizium ab.
Dieser Sperrstrom bzw. die Entladegeschwindigkeit kann sich auch von 
Pixel zu Pixel stark unterscheiden.

Ich habe vor sehr langer Zeit mal DRAMs untersucht, die noch nicht bei 
jedem Zugriff einen Refresh machten.
Row- und Column- Adressen aus einem Binärzähler auf zwei DACs gegeben 
und die Analogsignale zur X-Y-Ablenkung eines Scopes benutzt.
Den Datenausgang des Speicherchips für die Z-Modulation.
Wenn man dann einmal lauter Einsen in den Chip schreibt, was zur 
Dunkeltastung der Röhre führt, kann man während der darauf folgenden 
Sekunden schön sehen, wie die Speicherzellen ihre Ladung verlieren.
Das Bild erinnert an die Fenster eine Hochhauses, in dem Abends in 
zufälliger Folge nach und nach die Lichter angegehen.,
Ich schätze, dass bei Zimmertemperatur die ersten Speicherzellen nach 
0,5s ihre Ladung verloren hatten, aber viele auch über 10 Sekunden 
durchhielten.

Kühlung verbessert den Ladungserhalt dramatisch und bei mir bekannten 
Spektrometern werden die Chips sogar mittels mehrstufiger Peltier- oder 
Kompressorkühlung bei -70°C betrieben.
Die Astromonen kühlen ihre Kamerachips sogar mit flüssigem Stickstoff.

von lrep (Gast)


Lesenswert?

Erik Werner schrieb:
> Wie schnell muss dan ADC sein?

Das hängt u.a. davon ab, wieviel Bits er hat, also wie genau die 
Spannung sich in der zur Verfügung stehenden Zeit einstellen muss.

von karadur (Gast)


Lesenswert?

Hallo

zum Verständnis CCD.

Nach anlegen der Versorgung werden eintreffende Photonen pro Pixel als 
Strom in einem Kondensator als Ladung gespeichert. Je mehr Licht desto 
mehr Ladung. Irgendwann ist der Kondensator voll. Weitere Ladung fließt 
auch in die Nachbarzellen.  Das muss vermieden werden um brauchbare 
Signale zu erhalten.

Mit dem ROG-Puls wird die Ladung in den Transferspeicher geladen und mit 
jedem Takt an Clock an die Ausgangsstufe geleitet.

Deshalb entleert man den Transferspeicher. In der Zeit wird aber schon 
wieder belichtet.

Um kontinuierlich Zeilensignale zu erhalten muss man schneller auslesen 
als die Belichtungszeit dauert.

Für einzelne Zeilen muss man immer erst die Ladung aus der Zeit vor dem 
ersten ROG entfernen.

Evtl. muss wegen der Empfindlichkeit der CCD der Lichtstrom mit einer 
Blende reduziert werden oder mit einem mech. Shutter die Bel.-Zeit 
gemacht werden.

von Pandur S. (jetztnicht)


Lesenswert?

Ohne mich um den genauen chip gekuemmert zu haben.. Es gibt 2 sorten 
CCD. Der Eine ist einfach eine Eimerkette, da wird waehrend dem 
Rausschieben weiterbelichtet. Detr andere schiebt die Pixelladung erst 
mal in abgedunkelte Kondensatoren grad daneben. Dh die Pixel haben nur 
die halbe Flaeche. Und die werden dann per eimerkette rausgeschoben. 
Dafuer erreicht man kuerzere Belichtungszeiten.
Ich erachte den ADC eines Mega als viel zu langsam. Denn man muss 2 
Messungen pro pixel machen. Unter einem 500kSample wuerd ich nicht 
anfangen.

von Erik Werner (Gast)


Lesenswert?

Wozu sind die Dummy-Pixel?

von karadur (Gast)


Lesenswert?

Hallo

die Dummypixel auf dem CCD liefern eine Referenz für den Dunkelstrom.

Wenn man CDS verwendet kann man den Dunkelstrom aus dem Ausgangssignal 
entfernen.

von Alex (Gast)


Lesenswert?

Könnte sein das Sensor Sehr Empfindlich ist und deswegen kriegt man 
ständige überlichtung?
Vieleicht muss man irgendwelche filter benutzen um licht zu reduzieren?

von Bastler (Gast)


Lesenswert?

Die Sensoren sind äusserst empfimdlich und daher gleich überbelichtet, 
also entsprechend aufpassen.
Das Auslesen geht sogar mit Bascom, werde ich aber demnächst auf LunaAVR 
umschreiben. Im Beispiel wird aus Performancegründen nur jedes 4. Pixel 
ausgewertet.
1
'---------------------------------------------------------
2
' Spectroscopy mit ILX551B 2048-pixel CCD Linear Sensor    
3
'---------------------------------------------------------
4
5
$regfile = "m168def.dat"
6
$crystal = 14745600                     ' Quarz für exakte 115200 baud
7
$hwstack = 40
8
$swstack = 40
9
$framesize = 40
10
$baud = 115200
11
12
Dim Exposure As Word
13
Dim Integrate_time As Word
14
15
Dim Buffer(512) As Byte
16
17
Dim N As Word
18
Dim M As Byte
19
Dim X As Word
20
21
Clk Alias Portb.1
22
Prog Alias Portb.0
23
Config Portd.6 = Output
24
25
Ddrc = &B00000000                       'Port C aufs Eingang
26
Portc = &B11111110                      'Port C auf High ausser PortC.0
27
Ddrb = &B00000011                       'Port B Pin 0 / 1 Ausgänge
28
29
Config Adc = Single , Prescaler = 8 , Reference = Avcc
30
Set Admux.5
31
Start Adc
32
33
Exposure = 1000                         ' Belichtungszeit in µS
34
Integrate_time = Exposure               ' Dummy weil sonst Exposure falsch 
35
36
Set Prog
37
Waitms 1
38
Portd.6 = 0
39
40
Do
41
  X = 0
42
  M = 0
43
44
  '-------------------------  Dummy Lauf , Dauer ca. 10 ms
45
  Reset Prog
46
  Waitus 200
47
  Set Prog
48
  For N = 0 To 2086
49
      Reset Clk
50
      Waitus 1                          ': Nop : Nop : Nop : Nop : Nop
51
      Set Clk
52
  Next N
53
54
  '-------------------------  Belichtungszeit einstellen
55
  Reset Prog
56
  Waitus Exposure                       'Exposure Integrate_time us
57
  Set Prog
58
59
  Portd.6 = 0
60
  Portd.6 = 1 : Nop : Nop : Nop         'Puls für Oszi Trigger
61
  Portd.6 = 0
62
63
  '-------------------------  Mess Lauf , ca. 18 ms, jedes 4.Pixel lesen
64
  For N = 0 To 2086                     ' Adc auslesen
65
    Incr M
66
67
    Reset Clk
68
    Waitus 1
69
    Set Clk
70
71
    If M = 4 Then
72
      Nop : Nop
73
      Set Adcsra.adsc
74
      While Adcsra.adsc = 1
75
      Wend
76
      Buffer(x) = Adch
77
      M = 0
78
      Incr X
79
    End If
80
  Next N
81
82
  '--------------- Daten an serielle Schnittstelle schicken
83
  Print "++"
84
  Print Exposure ; " us"
85
  Print "Start Data #####################"
86
  For X = 0 To 512
87
    Print Buffer(x)
88
  Next
89
90
  '---------------- Serielle Schnitstelle lesen
91
  ' noch implementieren: Start Messung + Exposure Time von PC empfangen
92
93
Loop

von Bastler (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch das einfache Test-Frontend für obiges Programm.
Dargestellt wird das (nichtkalibrierte) Spektrum eines 
Billiglasermoduls.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

lrep schrieb:
> Erik Werner schrieb:
>> Wie schnell muss dan ADC sein?
> Das hängt u.a. davon ab, wieviel Bits er hat, also wie genau die
> Spannung sich in der zur Verfügung stehenden Zeit einstellen muss.

Diesen Satz habe ich nicht verstanden, was ist mit 'Spannung einstellen' 
gemeint?

Jetzt N. schrieb:
> Denn man muss 2 Messungen pro pixel machen.

Warum? Und dann den Mittelwert nehmen, oder wie meinst Du das?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

lrep schrieb:
> Das hängt u.a. davon ab, wieviel Bits er hat
Jetzt N. schrieb:
> 2 Messungen pro pixel
Oder weiss sonst jemand, was das soll?

von Alex (Gast)


Lesenswert?

Kennt man wo man schon fertige CCD Spektrometer kaufen kann?
Oder zu mindestens dieser Teil wo man Spektrum  von Licht  bekommt(ich 
kann nicht Spektrum auf Sensor  kriegen)
Ich hoffe das weist jemand.

von Alex (Gast)


Lesenswert?

Kennt man wo man schon fertige CCD Spektrometer kaufen kann?
Oder zu mindestens dieser Teil wo man Spektrum  von Licht  bekommt(ich
kann nicht Spektrum auf Sensor  kriegen)
Ich hoffe das weist jemand.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Alex schrieb:
> Oder zu mindestens dieser Teil wo man Spektrum  von Licht  bekommt

So etwas nennt sich Prisma.

von Amateur (Gast)


Lesenswert?

Eine Runde Gurgeln nach "CCD Spektrometer" ergab:
Ungefähr 41.600 Ergebnisse (0,37 Sekunden)
Zusammen mit jeder Menge kommerzieller Anzeigen von Leuten die sich 
freuen würden Dir so ein Ding zu verkaufen...

Ist aber schrecklich schwer nachzuvollziehen;)

von Alex (Gast)


Lesenswert?

Das ist mir klar aber auser Prisma muss man noch was dazu basteln aber 
lieber kaufen Weist du vieleicht wo?(ich meine komplete Systeme)

von Thomas W. (Gast)


Lesenswert?


von 客人 (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.