Connect with us

Calculating resistors required

Discussion in 'Electronic Basics' started by Danny T, Dec 31, 2004.

Scroll to continue with content
  1. Danny T

    Danny T Guest

    Hi all,

    Sorry for more reeeally basic questions, but advice I've been given by
    different people conflicts, and some of the reading on the web is a bit
    over my head, whereas you guys always seem to explain things well :)

    I've got a programmed PIC16F chip, and I want to wire it up to a few
    things... My power supply is 4AA batteries (about 6V), but my chip wants
    about 5V. The switches connected to my chip also want about 5V.

    My motor is driven from an output pin of the chip (which I guess, is
    5V?), but the motor is 3V. My LEDs are 3V too.


    I guess I need a resistor to reduce my 6V to 5V, which can then be
    connected to the chip + input switches. The 5V output would be find for
    the 5V LEDs, but I guess I need another resistor for each motor.

    It's also been mentioned that my switches should be connected to 0V via
    a resistor when "off", and 5V when "on". I don't understand the
    reasoning for this :-\

    Also, if I was to need 6V to drive something, but the output from my
    chip is less, though my main supply is enough - how do I go about
    changing a 5V (I think!) output, to 6V? I've been reading about
    transistors thinking they do what I want, but I've just confused myself
    even more!

    Many thanks!
     
  2. Andrew Holme

    Andrew Holme Guest

    You need a low-dropout regulator to convert 6V into 5V ("low-dropout" refers
    to the small difference between input and output voltages); you might get
    away with a diode drop (about 0.7V). Consult the IC datasheets: check the
    absolute max/min power supply voltages.
    I find it hard to believe that a PIC output can provide enough current to
    drive your motor. Are you sure? You would normally need a transistor (e.g.
    MOSFET) with a back e.m.f. protection diode. You could also use a dropper
    resistor, in series with the motor, if the power supply is too high for it.
    Also: I would power the motor from the unregulated supply to reduce noise on
    the microprocessor side; and use power supply decoupling capacitors.
    You can't use a resistor: the voltage drop across a resistor depends on the
    current flowing through it; the current is not constant. Consider using a
    diode or a (low dropout) regulator.
    You mentioned "switches" that "also want about 5V" above. I wondered if you
    meant logic-level drive MOSFETs or something else? Switches, in the normal
    sense, do not "want" any voltage! Switches, in their simplest form, are two
    terminal open/closed mechanical devices which make or break a circuit.
    Logic inputs are driven from switches like this. View diagram using a fixed
    width font:


    VCC
    +
    |
    |
    .-.
    | | R
    | |
    '-'
    |
    |
    +-----> Logic
    |
    |
    \ o
    \
    \.
    o
    |
    |
    ===
    GND



    +6V (or higher)
    +
    |
    |
    .-.
    | | Load
    | |
    '-'
    |
    |
    |
    ||-+
    ||<- N-Channel
    PIC >-----||-+ MOSFET
    | Logic Level Drive
    |
    |
    ===
    GND
    created by Andy´s ASCII-Circuit v1.24.140803 Beta www.tech-chat.de
     
  3. You could use 4 NiCad or NiMH batteries, this will give you approx 4.8V.
    The PIC is fairly flexible, it will work from >3V - ~6V, though 6V is
    really pusing it. You could also use 3 alkaline batteries for about
    4.5V. Or, as you should probably do, you could use a linear voltage
    regulator with a low dropout.
    Unless your motor is really small (<25mA maximum current), the PIC is
    not capable of driving it directly. You will need some kind of current
    amplification such as a transistor or an H-bridge to drive the motor.
    A dropping resistor is not the right way to lower your voltage to the
    PIC. Since the PIC will be drawing a varying amount of current (like
    when turning LEDs on and off), your voltage would fluctuate wildly. You
    will want to use a regulator of some kind as I mentioned above.

    You *will* want to use resistors to limit the current thru your LEDs,
    otherwise the PIC will attempt to supply a very large amount of current
    to the LED. This is likely to result in damage to the LED and/or the
    PIC output pin circuitry. (you can kill a PIC one pin at a time) LEDs
    (like most diodes) are not voltage controled devices, they need current
    limiting or they will burn out.
    The goal is to never have an input pin in a "floating" state. They are
    suggesting that you use a pull-up resistor on the pin so that when the
    switch isn't closed(pressed), the input pin sees a logic 1 (+5V) via the
    juice feeding thru the pull-up. Then you have the switch so that it
    shorts the pin directly to ground when pressed. The pull-up resistor
    will limit how much current is flowing to ground, and the input pin will
    "see" a logic 0. This way, the input pin is always connected to a
    voltage reference of 5V or 0V.
    You would want to use a transistor for this. For highish currents (like
    motors), I suggest looking into the wonderful and inexpensive
    logic-level n-channel MOSFETs. These are used allot like generic NPN
    transistors, but have extremely low "on resistance" (milliohms usually).
    The logic-level part means that you can connect the gate (base equiv)
    directly to the PIC output pin and you don't even need a current
    limiting resistor going into it since the MOSFETs gate input impedance
    is really high. You connect the source pin (emitter equiv) directly to
    ground. You stick your load (motor, lights, electric-chair or whatever
    ;-) between the drain pin (collector equiv) and your +6V supply. When
    the gate is high (+5V) the motor will run at full speed, when it's low
    (0V) it will be turned fully off.
     
  4. Byron A Jeff

    Byron A Jeff Guest

    -Hi all,
    -
    -Sorry for more reeeally basic questions, but advice I've been given by
    -different people conflicts, and some of the reading on the web is a bit
    -over my head, whereas you guys always seem to explain things well :)

    Flattery will get you a lot of places.

    -
    -I've got a programmed PIC16F chip, and I want to wire it up to a few
    -things... My power supply is 4AA batteries (about 6V), but my chip wants
    -about 5V. The switches connected to my chip also want about 5V.

    Switches generally don't care about voltage.

    -
    -My motor is driven from an output pin of the chip (which I guess, is
    -5V?), but the motor is 3V. My LEDs are 3V too.

    A couple of problems there. First off the PIC doesn't have enough drive to drive the
    motor. Second LEDs use current as a more important parameter than voltage.
    -
    -
    -I guess I need a resistor to reduce my 6V to 5V, which can then be
    -connected to the chip + input switches.

    Won't work. Resistors only work in this situation when the current requirements are
    constant. The setup you describe is virtually guaranteed to have fluctuating current
    which means that your voltage will be all over the place. In the end you'll probably
    end up releasing "magic smoke" and your chip won't work anymore.

    - The 5V output would be find for the 5V LEDs,

    Again LEDs are much more concerned about current. You'll need current limiting resistors
    for each LED.

    - but I guess I need another resistor for each motor.

    Resistors are not the proper way to manage differences in voltage. If you throw a
    resistor in series with your motor, you'll limit the amount of power that you can give
    to it.

    -
    -It's also been mentioned that my switches should be connected to 0V via
    -a resistor when "off", and 5V when "on". I don't understand the
    -reasoning for this :-\

    Most switches are single pole. This means that the switch is either connected or
    disconnected. When disconnected it floats and the input gets an indeterminate voltage.
    This can cause problems. The 0V "pulldown" resistor will guarantee that the input is
    0V when the switch is disconnected and 5V when connected.

    -
    -Also, if I was to need 6V to drive something, but the output from my
    -chip is less, though my main supply is enough - how do I go about
    -changing a 5V (I think!) output, to 6V? I've been reading about
    -transistors thinking they do what I want, but I've just confused myself
    -even more!

    Well you have a whole host of issues to deal with. Let's work with them one at a time.
    First and foremost is that your 4AA batteries will last about 2 minutes in the type of
    application with LEDs and motors that you are describing. I would advise working with
    a DC wall wart of at least 8V and a 7805 voltage regulator until you get everything
    working. The wall wart and regulator will solve most of the issues in terms of regulating
    voltage.

    Next make sure that each LED has a current limiting resistor. You can look up the process
    on the web.

    You'll need a transistor driver for your motor. Also you can drive your motor directly
    for your input voltage (8V) even if it's a 3V motor as long as the average voltage
    presented to it is about 3V. You do this using pulse width modulation. Give the motor
    a signal that is on 3/8 of the time and off 5/8 of the time and it'll run as if it has
    3V applied to it. Another way to do it is to give the motor it's own 3V regulator built
    from a LM317. Then you can run it at 100 percent without fear of burning it it.

    Hope this gives ytou some insight.

    BTW are you just fiddling or are you trying to build something in particular?
    Also what is your PIC setup?

    BAJ
     
  5. Danny T

    Danny T Guest

    Yikes.. Looks like things aren't quite as simple as I thought! I've
    responded to each point below...

    The power is 3.0 - 5.5 Volts. My supply is *around* 6V (from 4AA
    batteries). I'm not sure how consistant this voltage is as the batteries
    wear. I thought diodes were "one way" components, but I guess you're
    suggesting a diode also drops the current. So I could just put a diode
    in between the battery box and the chip?

    What value(?) diode should I use (and where would I find information on
    choosing this value in future?)?

    Ignorance is not bliss! The output pins connect to LEDs fine, so I
    assumed I could stick a small motor in. I guess not (told you I'm a
    n00b! ;)). So, how would you recommend wiring the motor? Would a
    transistor allow the output pin on the chip drive a higher
    voltage/current to the motor? How do I calculate the values of
    components I need? (the motor is 3V)

    I guess my understanding of resistors is a bit flawed! I know my
    batteries are 6v, and my chip wants 3.0 - 5.5, but nothing about the
    current the batteries can produce or the chip consumes :-\

    I see. I thought the switch would be between the +ve and pin, not to
    ground! How does this work? Also, how do you calculate the value of the
    resistor being used there?
    So the N-Channel MOSFET will connect the motor to ground when the PIC
    outputs a logic 1? I always thought switches where +ve side, not ground.
    Is there a difference?

    Thanks for your help with my newbie questions!
     
  6. Danny T

    Danny T Guest

    Excellent. I'm just looking @ Rapid Electronics, and they seem to be
    available in lots of different packages! Some look like ICs, and some
    have 3 legs. How do I figure out what I need?

    http://www.rapidelectronics.co.uk/rkmain.asp?PAGEID=20671&CTL_CAT_CODE=30416

    Righto. I've seen a formular for figuring out what resistors I need for
    LEDs as:

    1000 * (supply.voltage - voltage.needed) / current

    Does this look right? And is this for LEDs only, or can it be used for
    other things too?

    My only question here, is that a switch would then give logic 0. I
    thought it would be reversed, and a 1 would mean the switch is pressed.
    Is that the usual way of doing things?


    Right - getting somewhere now! :)

    So, for a circuit with two switches, one driving an LED and one driving
    a motor, would this be correct? (I know the PIC is redundant, since the
    inputs directly drive the outputs, but this wouldn't always be the case!)

    Excuse the bad ascii, I've never used that program before!

    VCC
    +
    |
    o----------o-------o----------o----------------------o---------
    | | | |
    | | | ,---.
    | | | | X | MOTOR
    | | | PIC '---'
    | | | + __ - |
    .-. .-. '-o| |o---------------)------.
    R | | R | | '-------o| |o--------. | |
    | | | | | .----o| |o-----. | | |
    '-' '-' | | .o|__|o--. | | | |
    | '----' | | | .-. | ||-+ |
    | | | | | | | | ||<- MOSFET
    |-------)-------' | | |R| '---||-+ |
    | | | | '-' | |
    | | | | | | |
    | | .-. .-. '---. '--. |
    | o | o R | | R | | | | |
    |=|> |=|> | | | | ,---. | |
    | o | o '-' '-' | X |LED | |
    | | Unused Unused '---' | |
    | | | | | | |
    | | | | | | |
    | | | | | | |
    | | | | | | |
    | | | | | | |
    | | | | | | |
    o----------o-------o-----------o--------o------o--------o---o--'
    |
    ===
    GND
    (created by AACircuit v1.28.4 beta 13/12/04 www.tech-chat.de)


    Two switches on the left. Two pins unused, one LED, and one motor. That
    right?

    Many thanks,
     
  7. Danny T

    Danny T Guest

    <snip>

    Whoops, I had 6V connected to the PIC there. I guess I'm missing a
    voltage regulator... Do I also need one for the motor? (motor is 3V)
     
  8. Danny T

    Danny T Guest

    I phrased that badly, but I meant I need to connect a supply to the
    input pins with the switches. Dunno where I got 5v from, but I assume it
    needs something!

    A wall wart? What's that? I guess something I could connect batteries or
    to the wall would be good while building. I guess I need something that
    plugs into the wall, converts to DC, and drops to around 6V (same as
    batteries)?

    Yep, got this sorted :)

    Is an N-type MOSFET the same thing?

    Didn't know that, but it does sound a little messy. I'd rather just give
    it 3V so I can leave it on/off as needed :)

    Currently I'm just fiddling. I want to simply set up a circuit with a
    Danny-programmed PIC in it. The ultimate goal is just to learn as much
    as possible about this kind of thing (the more I know, the more I can
    do!), but it'll probably start off heading down the route of little
    robots that move around avoiding obstacles at home!

    Thanks!
     
  9. Andrew Holme

    Andrew Holme Guest

    Didoes drop voltage not current. Silicon diodes (e.g. 1N4148 or 1N4001)
    drop about 0.7V so one would probably be adequate; but two, in series, would
    be safer.
    You need to know the current to calculate the dropper resistor. Use Ohm's
    Law. Or, find it by trial and error. Alternatively, you could use diodes
    to drop the voltage:
    6 - 3 = 3V
    3 / 0.7 = 4 diodes in series.

    [snip]

    [snip: diagram of SPST switch with pull-up resistor]
    Yes, you could swap the switch and the resistor around to invert the sense
    of the logic.
    10k (or more) is fine for CMOS inputs.

    [snip: diagram of N-channel logic-driven MOSFET with load]
    difference?

    You would need a P-channel MOSFET to do it that way around.
     
  10. Danny T

    Danny T Guest

    Andrew Holme wrote:
    But does it make any difference, switching +ve or ground? Is there any
    reasons for doing it either way? Not just for the motor, but the
    switches too?
     
  11. http://www.rapidelectronics.co.uk/rkmain.asp?PAGEID=20671&CTL_CAT_CODE=30416

    That's determined by how much current you need to draw, how much power
    the regulator is going to have to dissipate (as heat) dropping the
    voltage to the output level and how much margin the regulator has to
    work with (i.e. how much greater the input voltage is than the output
    voltage). The LM2940CT looks pretty good for you for all around
    experimentation if you want to supply allot of current, but the LP2950CZ
    should work ok in your circuit (as long as it is not trying to drive the
    motors too). It is limited to 160mA output.
    It's just a variation of Ohms law with the 1000 multiplier allowing you
    to specify current in milliamps instead of amps. For example, if you
    are using a diode with a 1.7Vf (forward voltage drop), and you wished to
    run it from a 5V supply, you will need to drop 3.3V thru the resistor.
    If you want 20mA of current then ((5-1.7)/20)*1000 = 165 Ohms.
    It can be done the other way around if you like.
    It looks ok to me. I assume you have MCLR disabled and are using the
    internal oscillator.
     
  12. You take only a slight risk by powering the PIC directly from 4 AA
    cells. They put out 6 volts (or a little above) only when new. With
    any significant load, they sag, quickly. I would mess with a
    regulator, only is the chip was very valuable.
    This loads have current requirements, as well as voltage needs. You
    have to take both into account when designing drivers. The PIC
    outputs have very limited current capability (read the spec sheet).
    The outputs may have enough capability ot drive an LED, especially in
    active low (on when the output is pulling negative), so a series
    resistor may be all you need for those. The resistor has to waste the
    extra voltage while passing the desired current. For instance if you
    desire that 10 ma pass through both LED and resistor, and you expect
    about 3 volts to be consumed by the LED, you have 2 or 3 volts that
    must be burned up by the resistor. 3 volts drop divided by 10 ma
    current through = 300 ohms resistance needed.

    The motor will quite likely need a driver that provides current gain.
    A PNP transistor connected as emitter follower (base to PIC output,
    collector to ground, emitter to motor, other side of motor to battery
    +) will provide about battery - .7 volts to motor when the PIC output
    goes low. If you need a high active driver, change to an NPN
    transistor and swap the collector and motor battery connections.
    Limiting the motor voltage to an accurate maximum voltage is a bit
    more complicated.
    This probably means that the program is set up to to watch the input
    switches (things you push to make the program do things) that are
    activated when they connect to +5, and when you are not pushing on
    them, a resistor pulls the input down to zero volts (active high).
    This is a completely arbitrary program choice.
    The simplest way is to add an N channel mosfet to the output (gate to
    output, source to zero, load between +6 and drain). When an output
    goes high, the mosfet will switch on and connect the full battery
    voltage across the load.
     
  13. Either can work, and the choice is up to the programmer. But most
    digital ICs pull down better than they pull up, so they can supply
    more load current in active low mode with less loss of voltage than
    when used in active high mode. I like inputs to be active low,
    because if the switch wiring shorts out to the case, the input line
    just gets grounded, instead of connecting the +5 volt supply to the
    case. But the choice is pretty arbitrary.
     
  14. The tradition of using pull-up resistors and a switch to ground comes
    from the characteristics of a TTL logic input. TTL inputs required a
    fairly low resistance to ground before they would consider it a logic
    low, and if the input was left open-circuit, would normally consider
    it a high (but it is still good practice to use pull-up resistors).

    CMOS inputs, as on most microcontrollers, don't source or sink any
    current - if left unconnected, they will be in an unknown intermediate
    state. Since they don't supply any significant current in either
    state, you can use a fairly high value of resistor to pull the input
    either high or low - then use the switch to pull it in the other
    direction.

    --
    Peter Bennett, VE7CEI
    peterbb4 (at) interchange.ubc.ca
    new newsgroup users info : http://vancouver-webpages.com/nnq
    GPS and NMEA info: http://vancouver-webpages.com/peter
    Vancouver Power Squadron: http://vancouver.powersquadron.ca
     
  15. Byron A Jeff

    Byron A Jeff Guest

    -
    -> Flattery will get you a lot of places.
    -
    -LOL!
    -
    -
    -> -I've got a programmed PIC16F chip, and I want to wire it up to a few
    -> -things... My power supply is 4AA batteries (about 6V), but my chip wants
    -> -about 5V. The switches connected to my chip also want about 5V.
    ->
    -> Switches generally don't care about voltage.
    -
    -I phrased that badly, but I meant I need to connect a supply to the
    -input pins with the switches. Dunno where I got 5v from, but I assume it
    -needs something!

    If the switch is going into the PIC then 5V is right.

    -
    -
    -> First and foremost is that your 4AA batteries will last about 2 minutes in the type of
    -> application with LEDs and motors that you are describing. I would advise working with
    -> a DC wall wart of at least 8V and a 7805 voltage regulator until you get everything
    -> working. The wall wart and regulator will solve most of the issues in terms of regulating
    -> voltage.
    -
    -A wall wart? What's that? I guess something I could connect batteries or
    -to the wall would be good while building. I guess I need something that
    -plugs into the wall, converts to DC, and drops to around 6V (same as
    -batteries)?

    a Wall wart is a DC power supply. Here's a typical picture:

    http://encyclobeamia.solarbotics.net/articles/_pix/wallwart.gif

    And you don't want 6V because then you'll have a problem regulating it. For
    a 7805 you generally want at least 2.5V of headroom. So if you want regulated
    5V then you'll want an input voltage of at least 7.5V. That's why I said 8V
    in the original post.

    - [SNIP]
    -> You'll need a transistor driver for your motor.
    -
    -Is an N-type MOSFET the same thing?

    Yup.

    -
    -
    -> Also you can drive your motor directly for your input
    - > voltage (8V) even if it's a 3V motor as long as the average voltage
    - > presented to it is about 3V. You do this using pulse
    - > width modulation.
    -
    -Didn't know that, but it does sound a little messy. I'd rather just give
    -it 3V so I can leave it on/off as needed :)

    Then you'll probably want to have a second regulator. Look up LM317 adjustable
    regulators as I said in my previous post. Both the 7805 and LM317 are available
    at Radio Shacks.


    -[SNIP]

    BAJ
     
  16. Danny T

    Danny T Guest

    Yep! (When I can figure out how to stop the programmer going nuts when I
    disable MCLR! - If not, I guess I just connect the MCLR pin to the PIC
    Vdd pin?)

    Going back to the regulators...:
    So, would I be right in thinking that 2x LM2940CT-5.0 would drop 6V to
    around 5V?

    I want to drive 2x3V motors, but it seems the LM2940CT-5.0 has a minimum
    input of 5.45 (to drop to around 5V). Motor specs say:

    No load current 0.34A max.
    Rated load current 1.07A max.

    But none of the low dropout regulators seem to fit... Was just looking
    at fixed voltage regulators, but the only one that'll allow a high
    enough current is an output of 5V, still too high for my motors :-(

    http://www.rapidelectronics.co.uk/r...CAT_CODE=30414&STK_PROD_CODE=M29655&XPAGENO=1

    Any suggestions?
     
  17. Danny T

    Danny T Guest

    Andrew Holme wrote:

    Any chance you could look at my thread "Circuit & Component Check" to
    see if all looks well?

    Thanks! :)
     
  18. Danny T

    Danny T Guest

    Anthony Fremont wrote:

    Any chance you could look at my thread "Circuit & Component Check" to
    see if all looks well?

    Thanks! :)
     
  19. Danny T

    Danny T Guest

    Byron A Jeff wrote:

    Any chance you could look at my thread "Circuit & Component Check" to
    see if all looks well?
    Would something like this work? (if I cut the end off and attach wires I
    can plug into my breadboard!)

    http://www.argos.co.uk/webapp/wcs/s...001&langId=-1&catalogId=2501&productId=111269

    Or do I need something that says "DC" in it?

    Thanks! :)
     
  20. Yes, you can usually tie it directly to the +5V.
    Why 2x?
    Don't use a regulator to power your motors. You could use a bunch of
    diodes, you could tap power from the middle of the battery pack, you
    could put the motors in series, or you could PWM the motors directly
    with the +6V. There are other ways, but I'd probably go with center
    tapping the PS (battery pack) or better yet using a different PS
    altogether for the motors (helps prevent noise in the PICs PS).
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-