Ich möchte das Mikrofon an den Audioausgang in Arduino anschließen?

Meine Kenntnisse in Elektronik sind gering.

Ich möchte einen Audiostream von Mikrofon zu Audio ausgeben und verwende folgenden Code in Arduino

 val = analogRead(analogPin);
Serial.println((int)val); 
tone(SND_PIN, val);    

Es gibt einen Wert aus, zum Beispiel 1023, was ist das? Ist dieser Code richtig und können wir direkt von Arduino aus eine Verbindung zum Mikrofon herstellen?

Wie viele Bits hat dein ADC? Welche Schaltung hast du am analogen Pin? Wenn sich die richtige Schaltung am ADC-Eingangspin befindet und Ihr o / p in digital 1023 ist, würden Sie daraus schließen, dass Sie einen 11-Bit-ADC verwenden. Wenn Sie jedoch einen 10-Bit-ADC verwenden, muss Ihre analoge Schaltung repariert werden.
Die Arduino- Funktion "tone" in Ihrem Beispiel erwartet als zweites Argument ("val") eine Frequenz. Der Wert, den Sie vom internen ADC über analogRead erhalten, ist jedoch keine Frequenz, sondern eine einfache "Momentaufnahme" der Spannung am Pin.

Antworten (2)

Der Wert ist die Ausgabe eines Sensormesswerts von einem Analog-Digital-Wandler ( ADC ). Ein ADC wandelt Werte aus der realen Welt in etwas um, das der Mikroprozessor verstehen kann, eine Reihe von Bits.

Also ein wirklich schneller Überblick über die Funktionsweise eines ADC: Sie speisen eine Vref-Spannung und ein Signal ein. Dieses Signal sollte zwischen GND und Ihrem Vref liegen. Es gibt Ihnen dann eine binäre Darstellung dessen, welche Spannung Ihr Signal hatte. Die Anzahl der Bits Ihres ADC ist die Menge an Granularität, die er Ihnen geben kann. Nehmen wir also an, Ihre Vref beträgt 5 V, und Sie speisen eine Sinuswelle von 1 V bis 3 V in das Signal ein. Nehmen wir jetzt auch an, Sie haben einen 10-Bit-ADC. Ihr Wert wird zwischen (1/5 * 1024) und (3/5 * 1024) schwanken.

Das bekommen Sie also, wenn Sie val auf der seriellen Schnittstelle ausdrucken. Nun, ob Ihr Mikrofon und Ihre Audiogeräte direkt an Pins eines Arduino angeschlossen werden können, wir brauchen wahrscheinlich mehr Informationen, um zu antworten. Bitte teilen Sie uns mit, welche Teilenummern Sie haben und welche Details Sie darüber haben usw. und wir können Ihnen weitere Informationen dazu geben. Beispielsweise benötigen Sie möglicherweise einen Verstärker oder andere unterstützende Teile. Um Ihnen den Einstieg zu erleichtern, sehen Sie sich dieses Beispiel eines Arduino mit einem Elektretmikrofon an.

Überprüfen Sie, ob die Spannung am ADC-Pin variiert. Verwenden Sie ein Potentiometer, um den DC-Wert zu variieren, bis Sie sehen können, dass die println-Ausgangsnummer wie erwartet variiert.

Dann versuchen Sie es mit dem Mikrofon. Höchstwahrscheinlich sehen Sie Werte nahe der Hälfte des ADC-Bereichs mit sehr geringer Variation. Das würde darauf hindeuten, dass Sie mehr Verstärkung benötigen - einen Verstärker zwischen Mikrofon und ADC, bei dem Sie die Verstärkung variieren können - 40 dB oder 100-fache Spannungsverstärkung wären eine erste Vermutung, ohne Ihr Mikrofon oder Ihre Schallpegel zu kennen.