Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:spektrumanalysator

Dies ist eine alte Version des Dokuments!


Spektrumanalysator mit NeoPixeln

Momentan baue ich einen Audio Spectrum Analyzer auf Basis eines Teensy 3.6 und den Audio Adaptor Board. Das Ergebnis der Fast-Fourier-Analyse wird auf zwei NeoPixel-Streifen dargestellt.

Funktionen:

  • Analoger Signaleingang
  • Berechnet eine Fast-Fourier-Analyse für den rechten und linken Audiokanal
  • Stellt das Spektrum eines Stereoaudiosignals auf zwei NeoPixel-Streifen dar (ein Streifen pro Kanal)
  • Die EIngangsempfindlichkeit wird automatisch eingestellt
  • Die Anzahl der Bänder kann eingestellt werden
  • Es kann eingestellt werden, auf welcher Seite der rechte und linke Kanal angezeigt wird (für Überkopfmontage)
  • Es kann eingestellt werden, ob das tiefste Band für den linken Kanal links oder rechts auf dem NeoPixel-Streifen dargestellt wird

Bedienungsanleitung

Der Spektrumanalysator kann über einen Drehencoder konfiguriert werden. Da der Spektrumanalysator über kein Display verfügt, wird die Menüstruktur auf den NeoPixel-Streifen dargestellt.

Das Menü ist hierarchisch aufgebaut. Die Menüebenen werden durch einfaches Drücken des Drehencoders gewechselt. Die Menüebene wird durch Blinken der NeoPixel-Streifen angezeigt. Die ausgewählte Einstellung wird grafisch dargestellt.

  • Einmal blinken: Menüebene 1
  • Zweimal blinken: Menüebene 2
  • Dreimal blinken: Menüebene 3

Erste Menüebene: Anzeigemodi

Zweite Menüebene: Kanaleinstellungen

Gehäuse

NeoPixel-Matrix

Beispiel von GreatScott

Bibliotheken

Elektronik

OLED-Display

Auf einem OLED-Display soll eine Menüstruktur abgebildet werden. Wie bei meinem Flaschenkühler wird ein Display von Adafruit verwendet. Das Display funktioniert mit der Library von Adafruit, die aber sehr langsam ist und die Verwendung des Displays stark einschränkt. Eine vielversprechende Alternative ist die optimierte Bibliothek von kirberich, die aber nur funktioniert, wenn der Teensy mit 72 MHz läuft (https://forum.pjrc.com/threads/40462-Teensy3-5-and-SSD1351-128x128-OLEDsiehe dazu auch diese Diskussion). Es muss also eine andere Alternative her …

  • Die Bibliothek SSD13XX funktioniert auch nicht. Bei 96 MHz wird etwas angezeigt, was Testgrafiken sein könnten, aber alles wird falsch angezeigt.

Links:

Das OLED-Display wird an den folgenden Pins angeschlossen:

Teensy 3.6      Adafruit OLED Breakout Board
GND             GND (G)
3,3 V           VIN (+)
14 (SCK0)       SCLK (CL)
7 (MOSI0)       MOSI (SI)
20 (CS0)        DC
21 (CS0)        OLEDCS (OC) CS
8               RST (R)

Dreh-Encoder

Einstellungen können über zwei Dreh-Encoder mit zusätzlicher Tastfunktion vorgenommen werden.

Umschalten des Eingangssignals

Der Spektrumanalysator kann aus drei Signalquellen gespeist werden:

  1. digital (optisch/coaxial)
  2. analog (Cinch)
  3. analog (Klinke)

Mit dem Dreh-Encoder 1 kann zwischen den Signalquellen umgeschaltet werden. Das Schalten geschieht mit bistabilen Relais (Datenblatt). Die Spulen der Relais werden mit einem ULN2803A (Datenblatt) geschaltet. Das Signal des Teensy 3.6 wird mit einem 74HCT245 (Datenblatt) auf 5 Volt gebracht.

Interessante Links:

Programmversionen

Unten sind verschiedene Programmversionen verlinkt. Jede Programmversion bindet neue Funktionen ein und korrigiert Fehler in älteren Versionen.

arduino/spektrumanalysator.1544350252.txt.gz · Zuletzt geändert: 18.05.2023 09:06 (Externe Bearbeitung)