2N3507 driving motor

I have a question:
Tonight for laughs I built a triangle wave generator (floating above ground) to the input of a unity gain op-amp which is in a closed loop
system.
On the op-amps output, I have a 100ohm resistor connected to the base of a 2N3507, 9 volts on the collector and the emitter is fedback to the inverting input (for the closed loop system). The emitter's output is also connected to a minature fan that draws about 0.5 amps at full on.
My idea was to slow the fan and then speed it up with the triangle wave generator (changing the ramp time by RC). But I ran into a problem: the transistor gets as hot as a pistol.
The datasheet has an Ic of 3A and yet I'm only driving (let's even call it 1A) not even half the maximum rating.
Should this be connected to a heat sink and if yes, how would I have known this by reading the datasheet?
Thanks in advance
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Peter wrote:

The problem is that you are not driving the transistor into saturation with the triangle wave, you are ramping it through the linear region. You're also driving the transistor with an op amp, which may not be able to provide enough current to drive the 2N3507, even if you use a square wave.
If you *must* use a triangle wave, get a bigger transistor and put it on a heatsink. Better yet, use a square wave PWM. And drive a darlington power transistor, like a TIP120 so that the amount of base current neede for saturation is real small. Or use a 555 as the square wave source - it can provide up to 200 mA into the base of your transistor and a darlington won't be needed.
Ed
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.