Vor einiger Zeit war ich an einem Arduino-Projekt arbeiten und ich brauchte, um festzustellen, ob das Ausgangssignal in Übereinstimmung mit den Besonderheiten war. So verbrachte ich einige Zeit im Internet auf der Suche nach Arduino Oszilloskopen bereits umgesetzt, aber ich mochte nicht, was ich gefunden habe. Die Projekte, die ich gefunden bestanden meist aus einer grafischen Benutzeroberfläche für Computer, die in Verarbeitung und eine sehr einfache Arduino Sketch geschrieben. Die Skizzen waren so etwas wie:
void setup() {}
Serial.Begin(9600);
}void loop() {}
Int Val = analogRead(ANALOG_IN);
Serial.println(Val);
}
Dieser Ansatz ist nicht falsch und ich will nicht, jemand zu beleidigen, aber das ist zu langsam für mich. Die serielle Schnittstelle ist langsam und senden alle Ergebnisse einer analogRead() durch sie ist ein Engpass.
Ich studiere seit einiger Zeit Wellenform Digitizer und ich weiß recht gut, wie sie funktionieren, so bekam ich von ihnen Inspiration. Das waren die Ausgangspunkte des Oszilloskops, die ich wollte zu schaffen:
- das eingehende Signal sollte von dem Arduino zu bewahren entkoppelt;
- mit einem Versatz des Signals ist es möglich, negative Signale zu sehen;
- die Daten sollten gepuffert werden;
- ein Hardware-Auslöser ist erforderlich, um die Signale zu fangen;
- ein Ringpuffer geben dem Signalverlauf vor dem Trigger (mehr zu diesem Punkt zu folgen);
- Verwendung von unteren Hebel-Funktionen, die die Standardtastenkombinationen macht das Programm schneller ausgeführt.
Die Skizze für den Arduino ist dieser Schritt, zusammen mit den Schaltplan der Schaltung beigefügt, die ich gemacht.
Der Name, den ich kam mit, Giringiro, ist eine frivole Anspielung auf Italienisch. Giro bedeutet Drehung und das Suffix -Ino hinzufügen, erhalten Sie eine kleine Drehung, aber Giringiro bedeutet auch Kaulquappe. Ich habe auf diese Weise einen Namen und ein Maskottchen.