Erstellen Sie ein digitales Oszilloskop über Arduino: 3 Schritte

Erstellen Sie ein digitales Oszilloskop über Arduino: 3 Schritte

Inhaltsverzeichnis:

Anonim

Häufig gesehene Leute, die digitales Online-Oszilloskop herstellen, muss DSO eine Digital-Analog-Wandlereinheit haben, entsprechend kann eine Wandlerschaltung in zwei Modi unterteilt werden: 1. Spezieller ADC-Chip + Einzelchip, 2. Verwenden der Einzelchip-ADC-Anzahl im Inneren der Konverter. Für das erste Modell habe ich zwei ausprobiert (siehe mein Blog: http://blog.Sina.com.CN/ntwhq), diese Schaltung ist etwas komplexer, die Komponenten sind schwieriger zu vervollständigen, es ist schwierig für Anfänger. Die zweite Struktur ist relativ einfach, leicht herzustellen, hat jedoch einen erheblichen Nachteil, das heißt, bei einer geringen Bandbreite sind die Übersee-Freunde von http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope eine der typischeren Arbeiten. htm, die Bandbreite des Oszilloskops beträgt nur 7,7 kHz. Heimanwender und STC-Single-Chip-AVR-Produktion, aber die tatsächliche Bandbreite beträgt weniger als 10 kHz. Sie können auch Fusion PCB verwenden, um eine Leiterplatte herzustellen, anstatt selbst zu löten.

Zubehör:

Schritt 1: Code

Kürzlich sah ein Freund mit Arduino-Oszilloskop, es ist vielleicht einfacher als die zweite Methode oben, aber ihre Ergebnisse sind nicht ideal, die Bandbreite ist schmal. Also wollte ich es versuchen und es gibt keinen guten Weg, um dieses Problem zu lösen. Durch Experimente hergestellt, den Code ständig modifiziert und die Abtastrate der D / A-Umwandlung verbessert, wurden sehr gute Ergebnisse erzielt.

Die wichtigsten Parameter des Endprodukts: Frequenzgang: 10Hz-50KHz Stromversorgung: 5V LCD LCD-Bildschirm: 128x64 (ST7920) Messbereich: 96x64 Informationsanzeige: 32x64, zeigt die Frequenz des Testsignals, Vpp und mehr an Sync: Trigger für steigende Flanke Scan-Geschwindigkeit: 0,02 ms / div ~ 10 ms / div, mit neun 1–2-5-Hold-Funktion: Frieren Sie die angezeigte Wellenform und die angezeigten Parameter ein viel Wissen über SCM. Ich habe ein Repository mit u8glib LCD verwendet, um die Programmierung zu vereinfachen, oder das LCD-Laufwerk kostet viel Zeit. U8glib-Download: u8glib_arduino_v1.13.zip (989,55 KB, Downloads: 2577) Hier ist meine erste Testschaltung für das Arduino UNO-Gebäude von 12864 LCD LCD mit ST7920-Steuerung. Solange die Eingabemethode im folgenden Code nach dem Herunterladen kompiliert wurde, können Sie die Grundfunktionen des digitalen Oszilloskops erreichen. Wäre es nicht einfacher? # Include // Anweisung U8GLIB_ST7920_128X64_4X u8g (13, 12, 11); Anweisung LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x, y; Gemalte Punktkoordinaten int Puffer 128; Cache-Speicher-Array ungültig setup () {} sample ungültig sample () {for (x = 0; x <128; x ++) Buffer x = analogRead (A0); Signalabtastung für (x = 0; x <128; x ++) Puffer x = 63- (Puffer x >> 4); Y-Werte berechnen} Void Draw anzeigen () {für (x = 0; x <127; x ++) u8g.drawLine (x, Puffer x, x, Puffer x + 1); Zeichne zwei Linien u8g.drawLine (64,0,64,63); Zeichnen Sie die Achsen u8g.drawLine (0,32,128,32); Für (x = 0; x <128; x + = 8) // zeichne die Achsenskala u8g.drawLine (x, 31, x, 33); für (x = 0; x <64; x + = 8) u8g.drawLine (63, x, 65, x); u8g.drawFrame (0,0,128,64); Rahmen zeichnen} void loop () {sample (); Beispiel u8g.firstPage (); Clear screen do draw (); Anzeige while (u8g.nextPage ());

}

Schritt 2: Schaltung

Unter Verwendung der Testschaltung wird mein Arduino direkt mit der Funktion analogRead () gemessen, um eine Konvertierung für etwa 111 μs abzuschließen. Die Konvertierungsgeschwindigkeit ist langsam. Ein Großteil der Bandbreite beträgt 1 kHz. Die nächste Priorität ist die Verbesserung der Geschwindigkeit von Digital-Analog Konvertierung, während Sie andere Funktionen hinzufügen.

Drittens, die neuesten Programme Hier ist der neueste Quellcode mit, bitte behalten Sie mein Boot-Logo, HA HA. Arduino_oscilloscope.zip (2,72 KB, Downloads: 2710)

Programmier-Chip 1.1V ADC verwenden Spannungsreferenz oben erwähnt, wenn Sie externe 5V Referenzspannung verwenden möchten, sollte Programm ADMUX = 0xe0 sein; An: ADMUX = 0x60; Vpp = (V_max-V_min) * 1,1 / 255; gelesen: Vpp = (V_max-V_min) * 5/255;

Verwenden Sie Fusion PCB kann eine viel bessere Leiterplatte machen.

Vier maschinelle Experimente mit dem Arduino UNO oben, der eigentlichen Karte bei Verwendung des Arduino PRO mini, um ein kleineres Volumen zu haben.

Schaltplan:

Liste der Hauptkomponenten: Name der Nummer Arduino PRO mini 1 LCD12864 LCD (ST7920) 1 Elektrolytkondensator (100 μ 25 V) 1 Potentiometer (50 k) 1 Lochplatte 3 Netzschalter 1 Batteriepatrone 2 Knopfschalter (mit wiederaufladbarem Akku, 7.) 1 Gehäuse 1

1, Schweißen Arduino PRO Mini-PIN.

2, Leiterplattenkomponenten schweißen

3, LCD Lochplatte machen

4, Leiterplatten zusammenbauen

5, den Fall machend, benutzte ich eine aufladende Umstrukturierung des Schatzkastens mit Plastikgehäuse, in der passenden Stelle auf dem Loch.

6, Versammlung

Laden Sie die Platine mit der dicken weißen Platte, die an der Innenseite der Frontplatte angebracht ist, in das Gehäuse.

Schritt 3: Hochladen und testen

Aufgrund des Arduino PRO mini schaltet sich der USB-Serial-Port-Stromkreis nicht um, so dass vor dem Herunterladen des Programms eine Übertragung über einen USB-Serial-Port erfolgt.

Das Debuggen von Oszilloskopen ist sehr einfach. Sie müssen lediglich das Potentiometer 50k in der Mitte der horizontalen Scanlinien einstellen. Ich benutze eine Signalgenerator-Signalquelle.

Startbild

Testen:

einige erklärungen

1, dies ist eines der einfachsten digitalen Oszilloskope, die Sie auf dieser Grundlage weiter verbessern können;

2, Sie haben vielleicht bemerkt, dass ich nicht den E / A-Port 0-7 verwende, der zufällig ein 8-Bit-AVR-Ein-Chip-Mikrocomputer ist. Dies ist das, was ich für spätere Upgrades vorbereitet habe, unter Verwendung eines speziellen ADC-Chips Kann als Dateneingabe verwendet werden. Wenn Sie sich für das Oszilloskop interessieren, werde ich ein Upgrade in Betracht ziehen.

3, Arbeit wurde gehetzt und haben Mängel und Mängel, bitte beraten Sie, Sie haben Fragen, die Sie auch hier haben.