Hallo alles zusammen,
nach dem mich „nikolaus10“ in einem anderen Thread ersucht hat, ein paar Details zu meinem „Mini – Oszilloskop“ bekannt zu geben, habe ich mit gedacht, ich stell das Projekt hier vor.
Ich habe mir vor ungefähr einem Jahr ein günstiges Grafik LCD gekauft, für welches ich, da nicht vorhanden, eine Library geschrieben habe, um Texte, Linien und einzelne Pixel ausgeben zu können.
Ich weiterer folge dachte ich, es müsste doch möglich sein, ein kleines Oszilloskop damit aufzubauen.
Elektronik:
Zur Ansteuerung des Grafikdisplay verwende ich einen ATMeag8, welcher mit einem 16MHz Quarz getaktet wird, um möglichst schnell ein Analogsignal abtasten zu können.
Die Schaltung hierfür ist im Prinzip dieselbe, wie schon das LCD selber benötigt (Schaltbare 15V Versorgung), welche ich lediglich um ein LC Filter erweitert habe, um Analogspannungen genauer Messen zu können.
Software:
Die Hauptaufgabe besteht darin, auf den, über den Trigger eingestellten, Spannungswert(unter Beachtung der eingestellten Triggerflanke) zu warten, 201 Samples des Analogsignals zu speichern, und diese auf dem LCD da zu stellen.
Um das Signal Triggern zu können, wird gewartet, bis das Signal den gewünschten Spannungslevel erreicht hat, und die nächsten Samples der Spannung dem vorgegebenen Verlauf (fallend oder steigen) entsprechen (unter Berücksichtigung einer Toleranz). Die 201 Samples werden mittels internen ACD digitalisiert, und im RAM des ATMega8 zwischengespeichert. Nach jedem vollständigen Sampeln, wird die alte Kurve des LCDs gelöscht, und die neuen Werte dargestellt. Ein Einfaches löschen des Displayinhaltes ist nicht möglich, da ansonsten das Rasters sowie der Text flimmert.
Mit den drei Tastern kann der Triggerlevel, die Triggerflanke, sowie die Abtastrate eingestellt werden, welche auf dem LCD dargestellt wird.
Um dem Oszilloskop eine Zeitbasis zu geben, werden die AD Wandlungen mittels Timer 1 (Compare unit) gestartet, welche man ebenfalls über das Menü auswählen kann.
Mit einem der drei Taster wählt man den Menüpunkt aus (kleiner schwarzer punkt vor dem Text) und mit den anderen zwei Tasten kann man in diesem Untermenü die jeweilige Funktion ausführen.
Um die Oszilloskopbilder zu speichern, gibt es die Möglichkeit, dass jeweilig aktuelle Bild via UART an den PC zu schicken, auf welchen man das Bild als normales BMP File betrachten kann.
Auf den Bildern ist die Lade- Endladekurve eines Kondensators zu sehn, welcher mit 4kHz umgeladen wurde.
Die Maximal darstellbare Frequenz ist ungefähr 20kHz, wobei man bei einem solchen Signal nur mehrere Perioden ansehen kann.
Weiters ist noch interessant, dass das Grafikdisplay bei Beleuchtung mittels Kamerablitz zufällige Streifen darstellt, was aber nicht weiter verwunderlich ist, da der LCD Kontroller mehr oder weniger „offen“ auf dem Flexprint verbunden ist, und Halbleiter für Lichtempfindlichkeit bekannt sind (Fotoeffekt).
Bilder:
Oszilloskop im Anfangsstadium (ohne Menü und Raster)
Fertiges Oszilloskop
Fehldarstellung durch Lichteinwirkung
Quellkode:
Quellkode Hauptfile (leider sehr spärlich kommentiert)
Link:
verwendetes Display
In diesem Sinne, freu ich mich schon über eure Anregungen, und wünsche euch noch einen schönen Abend.
Mit freundlichen Grüßen
Roland
Lesezeichen