1V bis 5V Transistorverstärker für Arduino-Digitaleingänge

Ich versuche, eine Soundkarte zu verwenden, um ein Triggersignal an einen Arduino zu senden. Die von mir verwendete Software begrenzt jedoch den Ausgang der Soundkarte auf zwischen -1 und 1 V, was nicht ausreicht, um den digitalen Pin auf dem Arduino auszulösen.

Grundsätzlich möchte ich versuchen, dieses 1-V-Signal auf einfachste Weise auf ein 3,3-5-V-Signal zu verstärken, möglicherweise indem ich einen Transistor verwende, um die 5-V-Versorgung von Arduino an den digitalen Pin zu leiten.

Dies ist etwas zeitkritisch, und die einzigen Komponenten, die ich im Moment zur Verfügung habe, sind einige NPN-Transistoren (2N2222) und eine große Auswahl an Widerständen. Kann ich einen Transistorverstärker bauen, um die 5 V zu erhalten, die ich brauche? Ich bin neu in diesem Bereich, daher bin ich mir auch nicht sicher, wie / wo Widerstände in diese Schaltung eingebaut werden sollen. Jede Hilfe wäre sehr willkommen!

Bearbeiten: Nur zur Verdeutlichung, ich verwende die Soundkarte, um einen Ton auf einem Kanal darzustellen, und dieses Triggersignal in Form eines kurzen Impulses, um den Beginn des Tons vom Arduino / für andere experimentelle Synchronisationszwecke genau abzuschätzen

Wie willst du die Soundkarte verwenden? Senden Sie einen bestimmten Ton und möchten, dass er unabhängig von der Amplitude erkannt wird? Oder würden Sie eine bestimmte Amplitude verwenden und möchten, dass diese unabhängig von der Frequenz erkannt wird? Oder glauben Sie, Sie können die Soundkarte verwenden, um Gleichstromimpulse zu erzeugen, die zwischen den beiden von Ihnen erwähnten Spannungen liegen? (Was ich bezweifle, dass Sie dies zuverlässig tun können.) (Persönlich würde ich einfach einen Ton auswählen und Amplitudenmodulation zum Auslösen verwenden - dies würde eine Spitzendetektorschaltung erfordern, die mit zwei BJTs gut durchgeführt werden kann.)
Versuchen Sie, einen analogen Arduino-Pin zu verwenden und das Soundkartensignal auf Vcc / 2 vorzuspannen.
jonk - Die Art und Weise, wie wir diese identische Soundkarte verwendet haben, besteht darin, nur kurze 5-V-Impulse zu erzeugen, um sie als Trigger zu verwenden, die in der Vergangenheit unterschiedlich zuverlässig waren. || Andy - ist die Idee hier, eine Schwellenerkennung am analogen Pin zu haben? Ich habe daran gedacht, aber wir wollen eine sehr schnelle Erkennung des Triggerereignisses, damit wir den Beginn eines anderen Tons auf einem separaten analogen Kanal abschätzen können, also war ich besorgt, dass dies etwas langsam sein könnte.

Antworten (4)

Es scheint, dass Sie einen nichtlinearen Verstärker benötigen, da der digitale Eingang nur ein logisches High (in der Nähe von Arduino + Versorgung) oder ein logisches Low (in der Nähe von Arduinos Masse) erkennt.
Dies wird durch eine allgemeine CMOS-Anforderung erschwert, einen Eingang sehr nahe an logisch niedrig oder sehr nahe an logisch hoch zu treiben - ein Verweilen nahe der Hälfte belastet das Logikgatter mit übermäßigem Durchschussstrom oder kann Schwingungen verursachen. Daher ist ein Verstärker mit ziemlich hoher Verstärkung oder ein Komparator erforderlich.
Eine weitere Komplikation betrifft die AC-Kopplung, die eine Soundkarte ausnahmslos verwendet: Ihr durchschnittlicher Ausgang wird immer null Volt betragen, selbst wenn Sie volle Amplitude +1 V oder volle -1 V programmieren. Ihre Schwellenwertschaltung kann also nur Amplitudenänderungen erkennen .

schematisch

Simulieren Sie diese Schaltung – Schema erstellt mit CircuitLab Dieser invertierende Verstärker wird kleine Änderungen an seinem Eingang zu Änderungen des Logikpegels an seinem Ausgang ( Logikausgang ) für einen Mikrocontroller verstärken. Ohne Eingang oder zu kleinem Eingang wird die Basisvorspannung so eingerichtet, dass "Logikausgang" hoch ist und über R3 hochgezogen wird. Positive Impulse am Eingang schalten den Transistor ein und erzeugen am Ausgang nur für kurze Zeit (wahrscheinlich Millisekunden) ein logisches Low.
Die Masse des Audioausgangs muss gemeinsam mit der Masse des Mikrocontrollers verbunden sein. Da dies ein nichtlinearer Verstärker ist, ist die Ausgabe sehr verzerrt und würde unverständlich klingen. Ein kontinuierlicher Ton mit voller Amplitude am Eingang würde Impulse mit Logikpegel der gleichen Frequenz am Logikausgang erzeugen.

Danke! Ich verwende keinen tatsächlichen "Ton", um das Arduino auszulösen, sondern einen Rechteckimpuls auf einem der Kanäle, also denke ich , dass die Wechselstromkopplung kein Problem ist? Dies führt zu meiner nächsten Frage: Im Moment sende ich einen 5-ms-Impuls als Trigger. Wird dies dazu führen, dass der Logikausgang ~ 5 ms lang niedrig bleibt, oder wird er bei steigender Flanke des Impulses kurz niedrig? Danke!
AC-Kopplung wird ein Problem sein. Stellen Sie sicher, dass Ihr audiogenerierter Rechteckimpuls ein positiver Impuls ist. Seine Vorderkante sollte eine negative Logikflanke am Arduino-Eingang verursachen, die zeitgleich ist. Die spätere logische Rückkehr zu High fällt möglicherweise nicht zeitlich mit Ihrem Eingangsimpuls zusammen (es sei denn, Ihr Eingangsimpuls ist sehr kurz).
Ok, komme jetzt erst dazu, die Schaltung zu implementieren. Ich gehe davon aus, dass der Audioeingang (-) zum Arduino-Boden gehen soll (vielleicht ist das Diagramm links unfertig??)
Ja, Masse der Soundkarte (am Eingang) an Masse des Mikrocontrollers.

Dadurch wird der Transistor eingeschaltet, wenn die Audiospannung ca. 0,7 V, dies zieht den IO-Pin nach unten. Es wird nur auf den +ve gehenden Teil des Audiosignals getriggert.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Im Wesentlichen die gleiche Schaltung wie unser Mann oben, aber er verwendet ziemlich niedrige Widerstandswerte

Ich gehe davon aus, dass der Ausgang Ihrer Soundkarte kapazitiv gekoppelt ist ... wenn nicht, könnten Sie einen Kondensator (1 uF oder mehr) in Reihe mit dem Eingang schalten.
Der Arduino-Eingangspin sollte bei Signalen über etwa 0,7-0,8 V positiver Spitze umschalten. Wenn Sie niederfrequente Sinus-/Rechteckwellen verwenden, können Sie möglicherweise sowohl eine Präsenz- als auch eine Frequenzanzeige erhalten.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Sie können die folgende Schaltung verwenden. Da Sie keine Dioden zur Hand haben, wird die Basis-Emitter-Diode von Q1 verwendet, um die Basis von Q2 vor großen negativen Spannungen wie statischen oder Transienten zu schützen.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ich habe tatsächlich eine Diode, ich würde diese mit Q1 tauschen, wobei die Diode von Masse weg zeigt?
Oh gut und ja, Anode an Masse, Kathode an Basis