Pages: [1] 2 3   Go Down
Author Topic: Transistor issue  (Read 3026 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello everyone, first post smiley

I'm planning on making a H bridge for reverse motor control, so to get started, I bought a few transistors to play with. For reference, the transistor has BC546 written on its flat part, so shoving that into Google brings up this datasheet:

http://www.datasheetcatalog.org/datasheet/philips/BC546_547_3.pdf   

My first plan (just to get the hang of working with transistors) was to have the positive lead from my 9v battery connected to the collector, the base connected to pin 6 from the arduino, and the emitter connected to one end of the motor. The remaining ends of the motor and the battery both go to ground, which goes to the GND slot in my arduino. I anticipated that switching the battery on without powering the arduino whatsoever would have no effect on the motor, since the lack of current flowing through the base would not allow any current at all to flow through from the collector to the emitter, and then to the motor. Conversely, sending a signal down from the arduino to the base (with the battery on) should have turned the motor on due to the current flowing into the base.

However, I noticed that even when the base was NOT connected to pin 6 and both grounds from the motor and the battery were also not connected to the arduino, (in other words, the arduino is completed separated from the circuit) the motor begins to turn at some frequency when the battery is in the 'on' position. That is, instead of continuous power, the motor turns on, then off, then on, and so forth. I approximate the time between consecutive ons to be between about 0.4 of a second.

This makes absolutely no sense to me, because at school I always thought that no current would flow through from the collector to the emitter if no current flowed through the base. So if anyone could shed some light on this issue, it would be greatly appreciated.

Thanks smiley   
Logged

Canada
Offline Offline
God Member
*****
Karma: 7
Posts: 602
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you show us a schematic?  Your description leaves a lot of questions that can best be answered with a schematic of how you have things hooked up.
Logged

Facts just don't care if you ignore them.

Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 47
Posts: 2892
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I apologize for an incomplete post, I have edited it to make a little more sense
It would help your attempt to have tried some of the examples provided in your IDE.. First. Doing so gives you a familiarity with properly using a port pin, the processor pins are Not indestructible. It's a good idea to follow some of those sometimes silly little exercises - Understand that they are there for a good reason and follow as many as you can find parts to do so...
 Do them and understand why they work - This is really important as it is both microcontroller training, it is electronics training, it is Programming training And it is what you need most to work well with the Arduino product.
What I was trying to say is it is a good idea to get some familiarity with basic electronics first. Your connection to the Arduino was not the proper method to drive a transistor which is what Patduino was trying to point out. Your issue with the transistor conducting was most likely a floating base lead that is picking up a stray signal and conducting. This was in part why I advised you to study some basics first. Make a drawing (it's good practice and a good thing to learn to draw schematics) so you can post it here for commentary. I apologize for my rather terse note in the beginning... BUT you still need a little electronics training first. You have some data from an experiment and no way to understand it without some more training. There is an application called Fritzing that can be downloaded free from this forum that will help you with the schematic drawing and for making drawings of breadboards as well.
{Heavily Edited RKJ}

Bob
« Last Edit: December 08, 2012, 06:21:22 pm by Docedison » Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Offline Offline
Edison Member
*
Karma: 116
Posts: 2205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
This makes absolutely no sense to me

Due to interference.
Logged

Indiana, US
Offline Offline
Full Member
***
Karma: 12
Posts: 204
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi SprinterDrift,

Welcome to the forums, and congrats on your first post...

You'll need to include a 1k or 2.2k resistor inline between the GPIO pin and transistor base to limit current flow.  (These are common values you should be able to use for all of your future projects as you get the hang of them...)

The intermittent operation you describe is most likely caused by the fact that the voltages are floating - not tied together, and varying enough to trigger the transistor switch.

Pat
Logged

There are 10 types of people in the world, those that understand binary, and those that don't.

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6619
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

That transistor is way too small to switch a motor, it is rated at 100mA max continuous collector current.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Anaheim CA.
Offline Offline
Faraday Member
**
Karma: 47
Posts: 2892
...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ *dhenry*... so what else is new?

Bob
Logged

--> WA7EMS <--
“The solution of every problem is another problem.” -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry if I wasn't clear enough.
I've posted a schematic on imgur:

http://imgur.com/Nh4qa

My problem is that even when the base is NOT connected to the arduino, the motor is still turning intermittently when the battery is on.
@Patduino, dhenry: I thought it was some kind of interference, could you please elaborate more, or perhaps link me to a page where it explains what is going on? I'm not exactly sure what voltage floating is. Also, advice on how to stop this would be appreciated.

To add to the confusion, a short while ago I attempted the circuit again, however, this time I attached the transistor base to arduino pin 7, and both the grounds (the negative battery end and the ground motor end) to the GND pin on the arduino.

Circuit here:  http://imgur.com/mrmPv

My first impression was that this circuit was working, that is, sending a signal down pin 7 (digitalwrite(forw,HIGH)) made the motor turn on, whereas sending a LOW signal down pin 7 keeps the motor off. However, when I switched the battery off, the motor kept turning under the command of the arduino, meaning that this entire time, the motor was being powered by the signal from pin 7 instead of the power from the battery! smiley-sad

For reference I'm using one of those old blocky Lego technic motors.
Logged

Offline Offline
Edison Member
*
Karma: 5
Posts: 1730
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The problem is your are using the npn transistor improperly to switch the motor, both the collector and base current flow thru the emitter, so the base drive current is apparently powering your small motor, what you need to do to properly switvh the motor is to connect the motor + to the battery positive,  the motor - to the transistor collector, and the transistor emitter to the battery -
then connect the battery - to your arduino ground, and wire a resistor between the transistor base and the arduino pin, now when you output high it will turn on fully, and turn off fully when outputtting low
Logged

Offline Offline
Edison Member
*
Karma: 5
Posts: 1730
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

For more information on using the transistor just google transistor as switch and you will find various schematics on the proper wiring
just remember your transistor is npn(switches negative), which is different from pnp (switches positive)
also because you are driving a dc motor you should have a flyback diode(google that too for examples) to prevent damage to your transistor
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6619
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Do as winner says, but you also need to connect a diode in parallel with the motor to catch the back emf when you turn it off. And use a transistor with a greater current carrying capacity.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Canada
Offline Offline
God Member
*****
Karma: 7
Posts: 602
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Okay,

First, those transistors have typical gain ranging from 150 - 270.  This means almost any EMI in the area will cause the transistor to turn on, at least a little.  The base needs to be connected to something, so the first circuit is a no go.  2nd, the next circuit you show is also a common collector circuit, which is probably not ideal for your needs, and it would need to have a base resistor to limit the base current.  Setting it up as a common emitter would allow you get a little more potential across the motor too.  Finally, the transistor is not up to the task of running even a tiny motor.  You almost certainly need a bigger transistor and I would recommend a Darlington arrangement  which is basically 2 transistors, althogh you can buy power Dalingtons in a single device.

See the attached schematic.  It will handle a motor that draws up to 10A and is pretty cheap.


* Motor Drive.jpg (58.96 KB, 1214x873 - viewed 19 times.)
« Last Edit: December 09, 2012, 10:18:49 am by BillO » Logged

Facts just don't care if you ignore them.

Offline Offline
Edison Member
*
Karma: 116
Posts: 2205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Circuit here:  http://imgur.com/mrmPv

You want the motor / load to be on the collector of your switch.

Emitter switching is OK in some cases but you switch mostly via the collector.
Logged

Indiana, US
Offline Offline
Full Member
***
Karma: 12
Posts: 204
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
@Patduino, dhenry: I thought it was some kind of interference, could you please elaborate more, or perhaps link me to a page where it explains what is going on? I'm not exactly sure what voltage floating is. Also, advice on how to stop this would be appreciated.

Connect a 10k resistor from the base to ground.  That'll keep the base voltage 0 when not connected to the Arduino.  It's a good idea to keep it there even when it is connected.  Voltage floating just means that the base isn't tied directly to any voltage source, so the voltage fluctuates in value, sometimes it has enough to trigger your transistor.  The 10k pull-down resistor will tie it to ground so it won't do that.  Google pull-down resistor for more.  This is a very common problem.

Also, when you connect the Arduino GPIO pin to the base, put a 1k resistor in between them.
Logged

There are 10 types of people in the world, those that understand binary, and those that don't.

United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6619
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

... I would recommend a Darlington arrangement  which is basically 2 transistors, althogh you can buy power Dalingtons in a single device.

See the attached schematic.  It will handle a motor that draws up to 10A and is pretty cheap.

1. The flyback diode is on the wrong place in that schematic, it doesn't protect the transistor when the motor switches off. For that, you need a flyback diode connected in parallel with the motor.

2. IMO darlingtons should almost never be used, because they have high saturation voltage. If the motor draws a substantial current, this results in a lot of power being dissipated in the darlington, so it will get hot and need a heatsink. A power mosfet is a much better solution in such a case. If the current is not so high (say 500mA or less), then a single transistor will do the job more efficiently and with less heat generation than a darlington, especially if the transistor is a high gain low saturation type such as the ZTX851.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Pages: [1] 2 3   Go Up
Jump to: