[Gelöst] "Tone" (nicht PWM, sorry) mit Mosfet verstärken

Hallo,
ich bin mit meinem Projekt Funkwecker fast fertig. Leider ist der Klingelton noch zu leise.
Als Lautsprecher habe ich einen Laptopspeaker. Die Noten der Melodie habe ich schon um eine Oktave angehoben, mit ein wenig Erfolg.
Ich dachte mir, so ein kleiner Transistor wird helfen, aber ich habe kaum noch Platz für die Periferie des Transistors, so kam der Gedanke einfach einen P-Kanal Mosfet zu nehmen.
PWM Ausgang an Gate, Source an Ub, Drain an den Speaker. Als Betribsspannung Ub habe ich 3 bis 4V zur Verfügung, da ich einen LiIon-Akku verwende.
Ich habe noch nie mit Mosfets gearbeitet habe, daher weiss ich auch nicht welchen ich nehmen kann.
Vielleicht hat ja jemand Erfahrung damit und kann mir einen empfehlen, oder mir auf den Weg geben wie ich den Richtigen finde.
Achja ich benutze einen ATmega328 @ 8MHz, eine Arduino Uno Board (ohne µC) zun uploaden und die Arduino IDE. Ich glaube aber, dass das nicht so relevant ist.

Eventuell muss ich einen N-Kanal Mosfet nehmen, ich weiss es leider noch nicht.

Hanggarack:
Eventuell muss ich einen N-Kanal Mosfet nehmen, ich weiss es leider noch nicht.

Wieso überhaupt ein Mosfet? Ein simpler Transistor müsste doch genügen, oder nicht?

Gruß

Gregor

Nachtrag: Der Code zur Tonhöhenänderung würde mich interessieren. Da eine Oktave einer simplen Verdoppelung der Frequenz entspricht und Du es wohl nur ungefähr hinbekommen hast, hast Du vermutlich irgendwas umständliches gemacht.

gregorss:
Wieso überhaupt ein Mosfet? Ein simpler Transistor müsste doch genügen, oder nicht?

Ja, würd ich auch sagen; zB einen BC337/40
zB: arduino - Eine Einführung

Ich habe leider kaum noch Platz in dem Wecker. Tft, Akku, Lautsprecher, Lipolader, Dcfdecoder, die ganzen Steckkontakte für alle 6Taster, die Taster selbst, viele litzen, und das größte, eine Platine 9x3 cm. Ich bekomme bestimmt noch 3 Beinchen unter, aber ein paar Widerstände nicht mehr. Also der richtige Mosfet braucht keine Periferie, daher dieser Ansatz, hab ich aber oben schon geschrieben.

Für die Noten, habe ich zuerst die pitches.h von der Arduino Seite benutzt, Siehe "Tone". Da sind die Noten für "Tone" definiert.
Was die Noten angeht klappt das, was den Sketch von der Seite angeht leider nicht, daher hab ich vom Kollegen ein paar Klassen geschrieben bekommen mit denen das gut geht.

Ich muss irgendwie den Ton lauter bekommen, einen zweiten Pin hab ich nicht übrig, sonst würde ich 2 Pins an den Speaker stecken. Das wäre am einfachsten.

Also muss ein kleines Bauteil her. Als naheliegend sehe ich ein Mosfet. Er muss bei mindestens 3V schon voll durch schalten, und darf aber nicht mehrals 4V Ub benötigen. Das ist mein Problem

Hanggarack:
... Für die Noten, habe ich zuerst die pitches.h von der Arduino Seite benutzt, Siehe "Tone". Da sind die Noten für "Tone" definiert.
Was die Noten angeht klappt das, was den Sketch von der Seite angeht leider nicht, daher hab ich vom Kollegen ein paar Klassen geschrieben bekommen mit denen das gut geht. ...

„... ein paar Klassen ...“?!

Statt tone(pin, f, Länge); musst Du doch nur tone(pin, f*2, Länge); schreiben. Oder verstehe ich Dich facslh?

Gruß

Gregor

Nachtrag: Da Du von Tönen sprichst, möchtest Du vermutlich kein PWM-Signal verstärken, sondern das, was aus einem Pin kommt, den Du mit tone() beschickst. Evtl. wäre es gut, wenn Du den Betreff Deines Postings änderst.

Hanggarack:
Also muss ein kleines Bauteil her. Als naheliegend sehe ich ein Mosfet. Er muss bei mindestens 3V schon voll durch schalten, und darf aber nicht mehrals 4V Ub benötigen. Das ist mein Problem

Das ist wirklich ein Problem. In diesem Fall ist ein herkömmlicher bipolarer Transistor besser geeignet ist, da es schwierig wird, einen LogicLevel-FET mit 2,7V Vgs zu finden, wird sehr schwierig werden. Ein herkömmlicher Transistor wird mit einem Strom angesteuert, der bei 3-4V mühelos aufzubringen ist.
Bei 3-4V ist die Ausgangsleistung schon arg begrenzt.

IRLML6244, IRLML6246 oder IRLML6344 (und vielleicht noch ein paar andere in der Reihe). Ist auch schön klein in SOT-23 :stuck_out_tongue:

Aber sogar der IRLD024 in DIP4 hat Vgs(th) = 1-2V

nix_mehr_frei:
... Bei 3-4V ist die Ausgangsleistung schon arg begrenzt.

Welche Leistung meinst Du? Wenn ich meinen Verstärker so aufdrehe, dass 1 W Leistung an die Lautsprecher gehen, bekomme ich ein Problem mit meinen Nachbarn. Diesen 1000 W-Autoverstärker-Wahn habe ich nie verstanden.

Gruß

Gregor

@ Gregor:

Statt Note_C4, habe ich Note_C5 genommen. Eine Oktave höher.
Achja und aus der Melodie, aus den Noten, und noch ein paar Sachen mehr (6Dateien), hat mein Kollege Klassen und Bibliotheken geschrieben. Diese Programmteile sind sozusagen ausgelagert.

Aus dem Pin kommt PWM wenn ein Ton abgespielt wird. Ich muss den Betreff des Postings nicht ändern.

@ Serenifly: Danke, diese Teile schau ich mir mal an. Die sind ja richtig klein. Wenn ich SMD nehme kann ich vllt einen Bipolaren nehmen, da hab ich eigentlich noch garnicht drüber nachgedacht. Dein Hinweis auf SOT-23 hat mich drauf gebracht.
Manchmal sieht man den Wald vor lauter Bäumen nicht :slight_smile:

Hanggarack:
Aus dem Pin kommt PWM wenn ein Ton abgespielt wird. Ich muss den Betreff des Postings nicht ändern.

Vielleicht reden wir aneinander vorbei. Per tone() erzeugte Töne haben mit PWM erstmal nichts zu tun.

Gruß

Gregor

gregorss:
Vielleicht reden wir aneinander vorbei. Per tone() erzeugte Töne haben mit PWM erstmal nichts zu tun.

Gruß

Gregor

Ja, irgendwie redet ihr am Problem vorbei.

Die Frage lautet welcher MOS-FET geeignet ist mehr Power zu bringen. Leider sind Lautsprecher induktiv(im Gegensatz zu Piezo-speaker) und erhöhen ihren Widerstand mit der Frequenz. Auch wenn das Gehör bei hören Frequenzen empfindlicher ist so heben sich die Effekte etwas auf.

Vieleicht reicht es also schon statt eines Lautsprechers einen Piezo-piepser anzubringen.

Sollte es wirklich PWM sein, wäre das allerdings Falsch. Den ein Lautsprecher braucht einen 50:50 Impuls um optimale Lautstärke zu bekommen. PWM ändert aber nicht die Frequenz sondern die das Verhältniss zwischen AN und AUS bei fester Frequenz. Da sich aber die Tonhöhe deiner Ausage nach geändert hat ist es wohl kein PWM.

Sollte es jedoch wirklich PWM sein, dürfte hier auch eine Mögliche Ursache der geringen Lautstärke sein. Dann versuch mal einen Impuls mit 50% zu generieren, was das Leistungsmaximum wäre. Die Frequenz ist dabei aber unveränderlich. Ein PWM-Signal würde auch mit MOS-FET keine guten Ergebnisse bringen. Es ist schlicht nicht dafür gemacht Töne zu erzeugen, auch wenn da irgendwas aus dem Lautsprecher kommt.

Hanggarack:
Ich muss irgendwie den Ton lauter bekommen, einen zweiten Pin hab ich nicht übrig, sonst würde ich 2 Pins an den Speaker stecken. Das wäre am einfachsten.

Nur als allgemeiner Hinweis: Das wäre für die Pins sehr gefährlich. Falls mal einer low und der andere high ist, hast du einen wunderbaren Kurzschluss.

Hanggarack:
Ich bekomme bestimmt noch 3 Beinchen unter, aber ein paar Widerstände nicht mehr. Also der richtige Mosfet braucht keine Periferie, daher dieser Ansatz, hab ich aber oben schon geschrieben.

Der Transistor braucht als Peripherie auch nur einen Basiswiderstand, den man zu Not sogar frei fliegend an die Basis anlöten kann.

Wichtig wären die Daten des Lautsprechers. Ist er bei 3-4V überhaupt laut genug? Wie hoch ist sein Gleichstromwiderstand?

Die Typen, die Serenifly genannt hat, kannst du alle nehmen.

Serenifly:
IRLML6244, IRLML6246 oder IRLML6344 (und vielleicht noch ein paar andere in der Reihe). Ist auch schön klein in SOT-23 :stuck_out_tongue:

Aber sogar der IRLD024 in DIP4 hat Vgs(th) = 1-2V

Nur Vorsicht, VGS(th) ist die Spannung, bei der der Fet anfängt durchzusteuern. Welche UGS du wirklich brauchst, kannst aus dem Diagramm "Typical Output Characteristics" entnehmen. Aber 3V reichen in deinem Falle aus.

Ob du damit höhere Lautstärke erzeugst, ist nicht sicher. Die mögliche Lautstärke (Ansteuerleistung) wird natürlich durch den Strom begrenzt, den du mit einem MOSFET erhöhen würdest. Aber auch durch die Impedanz des Lautsprechers und die Spannung. Bevor du lötest, probier erst mal.

Ok, danke für die Anregungen.

Hallo an alle, ich hab das jetzt einfach gelöst.
Danke Theseus für den Tip den Widerstand einfach direkt schwebend sozusagen an die Basis zu löten. Wenn alles immer so einfach wäre :slight_smile:
Ich habe einen BC547B genommen, und einen 270 Ohm Basiswiderstand nach ein paar Versuchen. Gemessen hab ich noch nix, aber laut isses jetzt :smiley: Mal messen und rechnen ob der das durchhält.
Also ich freue mich.

Danke an alle.

OT: kann ich hier im Forum mein Projekt einfach mal vorstellen?

PS. Ich werde mal das Tonsignal oszillographieren wenn ich dazu komme. Ich bin mir fast ganz sicher, dass es PWM ist mit, ti zu tp = 50%. Bei Interesse poste ich mal ein Print vom Oszi.

Hanggarack:
... den Widerstand einfach direkt schwebend sozusagen an die Basis zu löten ...

Das war auch mein letzter Gedanke dazu. Schließlich ist man nicht nur zum Spaß Bastler :slight_smile:

Hanggarack:
PS. Ich werde mal das Tonsignal oszillographieren wenn ich dazu komme. Ich bin mir fast ganz sicher, dass es PWM ist mit, ti zu tp = 50%. Bei Interesse poste ich mal ein Print vom Oszi.

Ich glaube immer noch, dass Du unterschiedliche Dinge durcheinanderbringst. Mich würde ein Oszi-Bild jedenfalls interessieren.

Gruß

Gregor

@gregorss:
Kannst mir ja mal erklären um was es geht. Wenn nicht hier im Thema dann mal per PM. Das interessiert mich.

hier bitte, bin auch ganz Ohr

ElEspanol:
... bin auch ganz Ohr

Auge genügt :slight_smile:

Ich zitiere mal aus meiner PM an Hanggarack:

Wenn Du mit tone() Töne erzeugst, kommt aus dem betreffenden Pin eine Schwingung einer frei wählbaren Frequenz. Diese Schwingung hat üblicherweise ein Tastverhältnis von 1:1 (die positive Halbwelle ist genauso lang wie die negative).

Wenn Du mit PWM spielst, änderst Du das Tastverhältnis von AN und AUS bei gleichbleibender Frequenz. Die Frequenz wird dabei AFAIK vom Mikrocontroller vorgegeben (z. B. 1 kHz).

Naja ... das ist zumindest das, wie ich es verstehe.

Gruß

Gregor

Nachtrag: Der Wikipedia-Artikel erklärt das IMO ganz gut.