Ich möchte einen Sinusfrequenzgenerator bauen, der über ein Arduino gesteuert werden kann. Die Sinusfrequenz würde im Niederfrequenzbereich (unter 100 Hz) mit einer Spannung von etwa 2,5 Volt von Spitze zu Spitze liegen.
Ich muss das SPI-Schnittstellen -SPI-Tutorial für andere Zwecke an meinem Arduino verwenden. Daher ist ein externer IC, der über SPI gesteuert werden kann, nicht machbar.
Außerdem möchte ich die DDS-Möglichkeit (Digital Direct Synthesis) vermeiden, da ich die Frequenzerzeugung auslagern möchte.
Vielleicht sollte die Sinuserzeugung also mit einigen der Standardoszillatoren wie Wienbrücke usw. erfolgen.
Kann mir jemand einen Link für eine Schaltung geben, die meine Anforderungen erfüllt und die mit einem Arduino Uno gesteuert werden kann?
Mit Kontrolle meine ich:
Mit "Ich möchte die Frequenzerzeugung auslagern" meine ich: Halten Sie die Programmierlogik in Arduino von zu vielen Dingen sauber, die ein dediziertes Gerät besser kann. Wenn ich Hardware anstelle von Software verwende, erwarte ich ein weniger fragiles Setup in Bezug auf das Timing. Wenn andere zeitkritische Erweiterungen auftauchen, habe ich mehr "Headroom" für sie.
Haben Sie darüber nachgedacht, eine Nachschlagetabelle mit Sinus-Winkel-Werten und DAC (Digital-Analog-Wandler) zur Erzeugung des analogen Ausgangs zu verwenden? Keine Weinbridge- oder RC-Shift-Oszillatoren erforderlich. Dies reduziert die Anzahl Ihrer Teile und schafft ein elegantes, vereinfachtes, präzises , digital gesteuerter Oszillator. Gehen Sie einfach mit der gewünschten Rate durch die Lookup-Tabelle, um die Frequenz zu steuern. Sie können einen Tiefpassfilter hinzufügen, um den DAC-Ausgang zu glätten und harmonische Verzerrungen zu reduzieren. Eine Lookup-Tabelle kann für 1/4 erstellt werden des Zyklus, um den zum Speichern von Werten für den ersten Quadranten ( ). Verwenden Sie dann Symmetrie bei um den 2. Quadranten zu bauen ( ). Wiederholen Sie schließlich den 1. und 2. Quadranten mit Inversion, um den 3. und 4. Quadranten zu bilden ( ). Damit ist ein Zyklus abgeschlossen. Höhere Auflösung wird mit höherem Bit-DAC erreicht. Bei max. Frequenz von 100 Hz, sollten Sie kein Problem haben, einen DAC zu finden, der die Arbeit erledigt. Erstellen Sie die Werte der Nachschlagetabellen von Hand (fehleranfällig) oder verwenden Sie die ersten Terme der Taylor-Reihenerweiterung der Sinusfunktion, zum Beispiel:
Die ersten 3 oder 4 Terme sollten eine gute Annäherung an den Sinus des Winkels ergeben. bedeutet n-faktoriell, zB . Sie können also die Gleichung tatsächlich im Code programmieren und Werte für jeden Winkel zwischen 0 und 90 in den Speicher laden. http://en.wikipedia.org/wiki/Sine
Sie brauchen keine zusätzlichen ICs für eine so niedrige Frequenz, nur ein paar Passive und Analogwrite reichen aus, siehe diese Links:
http://engineeringnotes.blogspot.com/2013/09/analog-output-from-microcontroller-dac.html
http://interface.khm.de/index.php/lab/experiments/arduino-dds-sinewave-generator/
http://www.avdweb.nl/arduino/hardware-interfacing/super-simple-dac.html
Spehro Pefhany
Jippie
LvW
Benutzer2145488
Benutzer2145488
LvW
Benutzer2145488
LvW