Moin, ich möchte ein analoges Signal aus einem selbstgebauten Audioverstärker mit dem Arduino Nano empfangen. Beim Test mit 100 Hz ist mir aufgefallen, dass die Werte nicht kontinuierlich angezeigt werden, sondern eher sprunghaft. Auf der Arduinowebsite steht, dass der ADC-Pin nur alle 100 us das Signal abliest. Das wäre doch eine Frequenz von max 10 Hz.. Die Signale, die ich empfangen möchte, liegen aber alle so im Bereich von 10 Hz - 20 kHz. Gibt es eine Möglichkeit die Abtastrate des Arduino ADC-Eingangs zu erhöhen? Grüße
Herr V. schrieb: > Moin, > > ich möchte ein analoges Signal aus einem selbstgebauten Audioverstärker > mit dem Arduino Nano empfangen. Beim Test mit 100 Hz ist mir > aufgefallen, dass die Werte nicht kontinuierlich angezeigt werden, > sondern eher sprunghaft. > Auf der Arduinowebsite steht, dass der ADC-Pin nur alle 100 us das > Signal abliest. Das wäre doch eine Frequenz von max 10 Hz.. > > Die Signale, die ich empfangen möchte, liegen aber alle so im Bereich > von 10 Hz - 20 kHz. Gibt es eine Möglichkeit die Abtastrate des Arduino > ADC-Eingangs zu erhöhen? > > Grüße Die Sample Rate muß nach Niquist muß mindestens das doppelte der höchsten Frequenz betragen. Als geht das beim 328 nicht mehr. Abgesehen davon müssen die Daten ja irgendwo hin. Die Stm32 können da bis 1Ms oder mehr. Vielleicht steige auf Maple Arduino um wenn Du Arduino verwenden möchtest. Der STM32 hat auch den Vorteil der DMA was das Programmieren sehr erleichtert. Der ADC mit Hilfe vom DMA kann die Daten per Hatdware direkt in zwei Ping Pong Puffer verfrachten ohne dass der CPU einen Finger rühren muß. Das geht dann vollautomatisch. Jedesmal wenn ein Puffer voll ist, gibts einen Interrupt der dann die weitere Verarbeitung in die Wege leitet. Mit alternativen Puffern kannst Du dann ohne Unterbrechungen den Datenstrom vom ADC verarbeiten und zum B. Einem DAC zuführen.
Herr V. schrieb: > Auf der Arduinowebsite steht, dass der ADC-Pin nur alle 100 us das > Signal abliest. Das wäre doch eine Frequenz von max 10 Hz.. Nein. 100 us Periode sind 10 kHz.
Thorsten S. schrieb: > Herr V. schrieb: >> Auf der Arduinowebsite steht, dass der ADC-Pin nur alle 100 us das >> Signal abliest. Das wäre doch eine Frequenz von max 10 Hz.. > > Nein. 100 us Periode sind 10 kHz. Er hat doch nur das "k" beim Hz übersehen... Er hat schon 10KHz gemeint.
:
Bearbeitet durch User
Ich sollte schlafen gehen und vermeiden nachts noch fragen zu stellen! Du hast natürlich Recht!
Das Datenblatt der Atmega328P gibt übrigens 15 kSPS als maximale Samplerate für volle 10 Bit Auflösung an. Mit geringerer Auflösung gehen bis zu 76,9 kSPS. Ob die Arduino-Umgebung das irgendwie unterstützt? k.A., ich hab meine Atmel uCs immer nur im Atmel-Studio in C programmiert.
Thorsten S. schrieb: > Ob die Arduino-Umgebung das irgendwie unterstützt? k.A., Aber ich weiß das: Von Hause aus nicht. Klarer: analogRead() kann das nicht. Aber man kann ja die Register genauso manipulieren, wie man es im Atmel Studio tut. Da gibts keinen Unterschied. Also Datenblatt lesen und men los legen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.