Go Down

Topic: Better Component than TIP120? (Read 458 times) previous topic - next topic

geoPot

Not being an electronics guy, I'm looking for a little help.

I'm using a TIP120 darlington transistor (TO220) as a single component audio amplifier directly connected to  Arduino Pro Mini for the audio input.  The application is in small RC airplanes so I'm using the available 5 volts from the ESC to power the Mini and the 11 volts from the LiPo battery to power the audio circuit.  Beyond that, are no voltage regulators, resistors, or capacitors involved at all.  I'm using a 5watt exciter-type speaker, (where the speaker front is attached directly to the fuselage, and the fuselage acts as a sounding board for the speaker to increase volume). 

Wiring is straightforward: Speaker to collector and, +11volts.  TIP120 base to Arduino audio out pin, emitter to common ground, collector to speaker.  This arrangement seems to work well in terms of audio quality and sound volume.  Sound-on cycle time not continuous, but is only in short bursts of a few seconds, and both the TIP120 and the speaker get "warm", but not "hot". 

Is there a better way to achieve this minimalist approach, (single component audio amp), and keep, or increase, to sound volume, using a something other than the TIP120?  I've seen a lot of other comments about using a mosfet instead of a darlington, but is that not an appropriate application for my purposes?

Thank you all.

jremington

#1
Jun 15, 2019, 07:06 pm Last Edit: Jun 15, 2019, 07:08 pm by jremington
Quote
This arrangement seems to work well in terms of audio quality
Hard to imagine for anything other than a buzzing tone. What sort of audio?

To protect the Arduino output pin from damage, you should have resistor to the base, 150 Ohms or greater.

Grumpy_Mike

It is also hard to imagine a worse circuit for anything let alone audio.

It is teetering on the brink of bursting into flames. Designed by someone who has no idea of what they are doing.

geoPot

JReminton:  One sound clip is that of a gun burst coming from .50 cal machine guns.  I also have a sound clip of a dropping bomb whistling, and then ending in an explosion.  Both are quite recognizable and there is no mistaking by the uninitiated as to what they are hearing.  To that extent, audio quality works just fine.


Grumpy Mike:  What part of "Not being an electronics guy . . ." did you not understand?  And your reply did not at all address the rest of the  sentence, "I'm looking for a little help".  Why post a respond at all?

jremington

#4
Jun 16, 2019, 01:21 am Last Edit: Jun 16, 2019, 02:13 am by jremington
Mike was warning you that this is actually a dangerous circuit, poised on the edge of self destruction. That qualifies as a little help, as does my comment warning that leaving out the base resistor can permanently damage the Arduino.

If you want better audio quality than "recognizable", use an amplifier module (perhaps this one), which will be safer as well.

Consider posting some information about how the audio signal is generated, since the standard Arduino has no means of producing a true analog waveform.




Grumpy_Mike

#5
Jun 16, 2019, 05:14 am Last Edit: Jun 16, 2019, 05:15 am by Grumpy_Mike
Quote
Is there a better way to achieve this minimalist approach, (single component audio amp),
Your expectations of a single component audio amp are unrealistic.

Quote
I've seen a lot of other comments about using a mosfet instead of a darlington, but is that not an appropriate application for my purposes?
That makes little sense, can you explain why this is please? The two components are in the same size package, and you would not need the base / gate resistor as you would with a darlington. So a bit less crap of a circuit.

There are two big problems with your circuit. One is the fact that you have nothing to limit the current through the speaker but its impedance. So assuming it is a standard 8 Ohm speaker with 12V across it you have a current of 1.5 Amps, can your battery produce that? Also the power in the speaker will be 18 Watts, can your speaker cope with that?

The other thing is that the current through the speaker only flows in one direction, that is it either flows in one direction or does not flow at all. This means the speaker cone is restricted to traveling only from the center position to one end and back to the center again. This halves the sound you can get out of the speaker and requires the speaker to be able to cope with 36 Watts. More likely the speaker cone is banged against the end stop and causes damage which, over time, will make the speaker stop working.

The thing is that you can not expect to have a single component amplifier. About the best you can do is use this poor, but not utterly crap circuit:-

geoPot

JR:

Re: How the audio is generated, I'm using the startPlayback() function, which is part of the PCM.h library.  Referenced audio files need to have been converted to a stereo bit rate of 16bps, and a sample rate of 8kHz.  These settings are terrible for normal audio, but work well in my application.  That format can then be used to generate numeric values that are loaded into memory array and then read by startPlayback() as needed.  Without modification, the default library output pin assigned is pin 11 on Uno/Pro Mini. 

GM:
Now that's good information.  Thank you.  Again, not being the electronics guy, I was using a TO-220-type package attempting to handle the larger loads and trying to manage the heat concerns.  I'll try the circuit you provided, but would a TO-220 type transistor help, and if so, what transistor would that be? (I don't see a 2N2222 in that package.)

Grumpy_Mike

You need to know the power rating of your speaker. It is a waste of time trying to increase the volume if it exceeds what the speaker can produce. Overloading the speaker doesn't increase the volume it only damages the speaker.

If you are using the PCM library then you need a reconstruction filter on the output before you try and amplify it. Normally a series resistor of 1K and capacitor to ground of 22nF.

Southpark

#8
Jun 16, 2019, 10:27 pm Last Edit: Jun 16, 2019, 10:30 pm by Southpark
The thing is that you can not expect to have a single component amplifier. About the best you can do is use this poor, but not utterly crap circuit:-
GM ..... that circuit might require a darlington configuration for some relatively substantial power handling, right? But then again - depends on how much power we need to put into the speaker. The circuit does get the nice point across.

Grumpy_Mike

Quote
that circuit might require a darlington configuration for some relatively substantial power handling, right?
If you put a darlington into that circuit then the biasing is all wrong so you need to adjust that. Also I believe that the gain would be too high and you would not operate in the liner mode. The power transfer between speaker and transistor is via a 10uF capacitor that would need increasing. Finally the 1K collector resistor means the transistor is not going to draw more current than 5mA anyway.

geoPot

In the initial post, I misquoted the power rating of the speaker as 5 watt.  Actually, it is 10 watts, 4 ohm impedance.


Is the reconstruction filter something like this?:

Amp------R1------R2-------Speaker
                    |
                   C1
                    |
                 GRD      
 

Southpark

If you put a darlington into that circuit then the biasing is all wrong so you need to adjust that. Also I believe that the gain would be too high and you would not operate in the liner mode. The power transfer between speaker and transistor is via a 10uF capacitor that would need increasing. Finally the 1K collector resistor means the transistor is not going to draw more current than 5mA anyway.
True. Good points GM!

Grumpy_Mike

Quote
Is the reconstruction filter something like this?:
Not quite, it goes between the Arduino's output and the amplifier's input. You can leave out the resistor on the amplifier's input if using the reconstruction filter.

Go Up