Inhaltsverzeichnis:

Arduino-Oszilloskop: Warum es funktioniert - Gunook
Arduino-Oszilloskop: Warum es funktioniert - Gunook

Video: Arduino-Oszilloskop: Warum es funktioniert - Gunook

Video: Arduino-Oszilloskop: Warum es funktioniert - Gunook
Video: Warum MOSFET Treiber manchmal essentiell sind?! | MOSFET Ansteuerung Teil 1 (Treiber, Bootstrapping) 2024, November
Anonim
Image
Image

Vor ein paar Jahren, als ich in die Elektronik einstieg und die Grundprinzipien studierte. Ich habe festgestellt, dass ein Zielfernrohr das Werkzeug ist, das Ihnen bei fast allem hilft. Nachdem ich das verstanden hatte, machte ich mich daran, die Grundprinzipien der Funktionsweise eines Oszilloskops zu erlernen, nach ein paar Monaten dachte ich mir, ein Oszilloskop ist auf einem Mikrocontroller implementierbar, wenn ich mich in einen Lernpunkt von Perspektive. Warum ein Mikrocontroller, weil er alle notwendigen Dinge hatte, um einen zu bauen, wie ein ADC, um ein Signal aufzunehmen (aber ohne Steuer-Frontend), er hatte GPIO-Ports, die für viele Zwecke verwendet werden konnten, es auch hat eine CPU, wenn auch sanftmütig! (Ich dachte an ein Arduino).

Ich begann mit der Recherche über Arduino-Oszilloskope, die gut und sehr gut waren, aber ich hätte mir einen einfacheren Code gewünscht, der leicht zu ändern und zu verstehen ist. Gerade als ich suchte, stieß ich in den Arduino-Foren von 'vaupell' auf die Basis des aktuellen Codes. Ich fing an, es zu modifizieren und zu kommentieren und das Zeug zu bereinigen, um es lesbarer zu machen. Der Originalcode stammt von Noriaki Mitsunaga.

Sehen wir uns also an, wie Sie die Hardware und Software einrichten und verwenden.

Ich muss noch mit dem Schreiben der Erklärung für den Code im GitHub-Wiki beginnen. Wenn Sie etwas Zeit haben, schauen Sie sich um.

! - Dieses Projekt beschreibt nicht, wie ein Oszilloskop hergestellt wird, sondern zeigt Ihnen, wie Sie mit einem einfachen Mikrocontroller das Verhalten eines echten Oszilloskops emulieren können, um zu verstehen, wie ein Oszilloskop funktioniert.

Schritt 1: Kennen Sie Ihre Hardware

Kennen Sie Ihre Hardware
Kennen Sie Ihre Hardware

Das Ziel dieses Projektes ist es, einen Einblick in die Funktionsweise eines Scopes zu geben. Aus diesem Grund habe ich die einfachste und beliebteste Hardwareplattform arduino ausgewählt. Der Code ist auf einem Arduino Uno oder einem Arduino Mega lauffähig, wobei letzteres bevorzugt wird, da er mehr freie und zugängliche Pins hat, wenn ein Display darauf installiert ist.

In diesem Projekt werde ich also ein Arduino Mega (2560) verwenden.

Die nächste Komponente ist das Display. Dieses Setup verwendet ein Arduino TFT 2,5-Zoll-Touch-Shield (die Treiber-ID ist 0x9341). Dies gibt die Möglichkeit, mehrere Kanäle auf dem Bildschirm anzuzeigen, die voneinander unterscheidbar sind.

Das ist alles dazu. Dieses Zielfernrohr ist jedoch in seinen Fähigkeiten sehr eingeschränkt, also drängen Sie es nicht an den Rand. Einige spezielle Dinge, um die Sie sich kümmern sollten, sind;

der arduino-ADC kann Spannungen über 5 Volt nicht sehr gut verarbeiten und auch Spannungen unter 0 Volt nicht gut verarbeiten. Warum, weil es so konzipiert ist.

Das gleichzeitige Erfassen von Daten von mehreren Kanälen verringert die effektive Abtastrate eines einzelnen Kanals, da die Abtastwerte abwechselnd von den mehreren Kanälen genommen werden.

die Abtastrate ist sehr niedrig (bei einer Einzelkanalerfassung kann sie bis zu 10 kSps betragen, aber bei zwei Kanälen fällt sie auf 5 kSps/Kanal ab). Dies kann abgeschwächt werden, indem die ADC-Referenzfrequenz (Einstellung des Preskalars) auf einen niedrigeren Wert eingestellt wird. Dies hat jedoch seine eigenen Probleme der schlechten Auflösung.

Vergessen Sie auch nicht einen Computer, um den Code auf das Arduino hochzuladen.

Schritt 2: Einrichtung

Aufstellen
Aufstellen
Aufstellen
Aufstellen

Die Einrichtung ist sehr einfach;

Befestigen Sie das Display-Shield so am Arduino Mega, dass die Power-Pins auf beiden Platinen ausgerichtet sind.

Verbinden Sie das Board über ein USB-Kabel mit dem Computer.

Öffnen Sie die Arduino-IDE und fügen Sie die TFT-Display-Bibliothek SPFD5408 (0x9341) hinzu, falls sie noch nicht vorhanden ist.

Laden Sie nun die Codedatei von github auf den Arduino hoch.

GitHub - Arduino-Oszilloskop

Hier hast du es!. Sie können an dem Code basteln, indem Sie die Kanäle 8 (ch0) und 15 (ch1) im Codekanal-Setup-Bereich auf ON oder OFF setzen. Sie können die Rate-Variable in einen Wert aus dem Rate-Array ändern, um die Zeit/Teilung des Bereichs festzulegen. Sie können den Triggertyp im Triggerabschnitt des Codes auf Auto oder Single einstellen.

Der folgende Schritt zeigt einen ADXL335 3-Achsen-Beschleunigungsmesser, der vom Arduino-Oszilloskop mit Strom versorgt und gelesen wird, wie im ersten Video zu sehen ist.

Schritt 3: Beispiel - ADXL335 Lesen des Beschleunigungsmessers

Beispiel - ADXL335 Ablesen des Beschleunigungsmessers
Beispiel - ADXL335 Ablesen des Beschleunigungsmessers
Beispiel - ADXL335 Ablesen des Beschleunigungsmessers
Beispiel - ADXL335 Ablesen des Beschleunigungsmessers
Beispiel - ADXL335 Ablesen des Beschleunigungsmessers
Beispiel - ADXL335 Ablesen des Beschleunigungsmessers

Versorgen Sie das Beschleunigungssensormodul mit 5V DC und GND der Arduino-Platine ganz rechts oben und unten. Verbinden Sie nun den x-out-Pin des adxl335-Moduls mit dem Pin A8 des Arduino-Boards, wie in den Bildern zu sehen. Wenn die x-Achse des Beschleunigungsmessers nach unten zeigt, wird die Datenlinie auf dem Oszilloskop-Bildschirm von Null verschoben, da das Adxl-Modul die Erdbeschleunigung misst. Versuchen Sie, es in x-Richtung zu schütteln, wie auf dem Adxl-Board markiert, die Spikes werden auf dem Bildschirm angezeigt.

Weitere Informationen zum Umfang und seiner Funktionsweise finden Sie im GitHub-Wiki

Schritt 4: Mitmachen?

Wenn Sie zur Wiki-Dokumentation beitragen möchten, sind Sie herzlich willkommen. Oszilloskop ist ein fantastisches Gerät und ich denke, es ist ein gutes STEM-Tool!.

Ich arbeite derzeit an einem kleinen Frontend mit einem Dummy-PGA und einer Offset-Steuerung und würde eine Steuerung für die Zeit / Div hinzufügen und möglicherweise Niederspannungs-AC-Signale lesen.

Empfohlen: