Can I use a 100K resistor as a pulldown resistor?

I wonder what the maximum Pulldown resistor value is for a Arduino UNO port?
In my application I'll be needing a 100K resistor to pull a portpin low. Or does that mean that the port will not be "pulled low" far enough?

It may well be enough to pull the input down, but without seeing the whole project it is impossible to say for sure. How long is the wire to the input? Is the environment electrically noisy? Why pull down with an external resistor and not pullup with the internal pullups? What Arduino board?

If I go to deep into the details, it might create crosspost with another part of the project.
I was just wondering if a 100K resistor as a pulldown resistor might conflict with internal eletronics, resulting in not pulling the port low all the way.

You have to imagine there will always be 2 switches turned, 1 on both side of the scematic.
At first I had a matrix of 4 and 3 resistors, and a pulldown resistor in series connected.
But I always ended up with a narrow range of values which in turn were to close to determine.
In my new concept I integrated the pulldown resistor as beeing part of the left side of the resistors.
Keeping the PD resistor high in ohms, it would not be a big influence of the total left resistors.

It was a hell of a job to find the right values to reach a wide range of values, fairly equaly spread.
I wrote a little code in excel, to whatch the effect of changing the value(s) of the resistor(s), which of course had to be within the common E12 range.

There is a failsafe for that matter... (of which is this scematic I just realized).
I can devide every value by 10, keeping the balance the same, while having the right pulldown value.
The disadvantage of that would be that one resistorvalue might get to low.
Deviding the value by two end up in fine tuning again because of not having the exact half value resistor, therefore unbalancing the voltage level and create values that might be to close to determine again.

What are you really trying to do? Are you connecting to an analogue or a digital input?

If you intend on using a voltage divider to a digital input you may be setting the junction level to an indeterminate voltage that is neither HIGH or LOW.

In general, 100K Ohm is on the higher side of the resistor value for pull down. Ideally 10K is used. But it really depends on the application. Why don't you share a circuit diagram?

Thanks,
Prithwiraj Bose

OK, so you are connecting to an analog input pin, not digital, and one of R5, R6 or R7 will always be switched in (otherwise you won't be able to detect R1 through R4). The pulldown resistor isn't a traditional pulldown resistor you would expect in a digital circuit but is just part of the resistor network.

The only problem you might get is leakage current (1µA) on the input pin throwing off the measurements. Frankly, I'd just go with a pure digital design and not fiddle with relying on knowing the resistor ratios. SPI and a shift register and you can basically handle any number of switches. But it's your design and I suspect you have a reason to do it this way.

Yes, a 100k pulldown will work in that circuit. But, even 100K results in a ~10% change in value when R4 is in circuit. Of course it will be less if R1/2/3 are in circuit. Adding a 100nf from the analog pin to ground could potentially help with noise.

As already mentioned, using an analog input to expand digital inputs isn’t a good solution. Noise, invalid input combinations and lots of extra code are just some of the reasons why not to bother.

The MCP23017 is a clean approach which gives you 16 additional inputs for the cost of the A4/A5 pins and since it has internal pull-ups, it needs no extra parts.

Thanks for all the reply's and assistance.

Reason for my doing that is mainly that I have a piece or hardware that forces me to work in a certain way. That and of course the pride of having an Idea and not letting go because I know it is possible.
I have the possibilities to use two analog inputs (Oh yeah, sorry for that... I forgot to mention that "little detail". :wink: It's an analog portpin I'm connecting it to. :yum:)

@sribasu , the scematic is allready posted in the startpost.
Actually, there I used the "devided by 10" values of resistors, so it's a 10K Pulldown resistor again, for that matter.

Here's the same scematic along with a math table I created in Excel, where I can adjust the resistor values to figure out the best settings.
My goal is to at least have steps of 100mV's so any difference can be determined and there is just a small chance of an overlap.

There is however a tolerance issue, based on that 5% resistor. This would be equaly applied to the voltage, so in the worst case that would be 5% of 5v = 0,25v.
I have to test that. If necessary, I can switch to 1% tolerance resistors.

A big part of the project is to fool around a bit to check the possibilities. :slight_smile:

Back to the arduino based issue, I guess I can map that voltage and scale it in roughly 16 steps, using 12 of them.
But that would be the next step

Now I know what you are doing I don't see a problem with it. 100k Ohms should be fine, you might (only might) be OK with 1M Ohm, but that's for experimenting. As for your concern about 5% tolerance resistors, the obvious answer is don't use 5% tolerance resistors! Use 1% tolerance. You might want to consider @WattsThat 's suggestion for a capacitor on the input to suppress noise.

I don't think your calculation is correct, I checked the first one and I get 0.784V at the input.
R1 1k8 in parralell with Pulldown 10k gives 1525 Ohms for the bottom resistor, in series with R5 8k2 for the top resistor.

Total series resistance = 9725 Ohms

Voltage at the junction of the two resistances 5V * (1525 / 9725) = 0.784V

Wow... Then I guess everything is wrong.
I created some formulas in Excel, based on the provided resistorvalues.
I have to check on that!

Hi,
To put it simply;
You have 7 switches?
You want to be able to read any switch or combination of switches?

If so why are you using an analog method when 7 digital inputs would work for you.

It looks like you have been asking a similar question in the Netherlands section of the forum.

I think you need to be more informative and tell us the application?
What are the switches part of?
What do you want the controller to do with the different switch positions?

Can you please tell us your electronics, programming, arduino, hardware experience?

Tom... :smiley: :+1: :coffee: :australia:

The input resistance of a CMOS input is measured in gigaohms, 100k will have no danger winning out against this! However if you have internal pull-ups enabled its a different story!

100k is considered a weak pull-up, suitable for use on-board, but may be too weak for an external signal coming in on a cable. Cables pick up noise capacitively and you need a low enough impedance to ground to drain these currents away without triggering an input. 2k2 to 10k is commonly used for cable-borne signals, or even 1k in extremis (nearby industrial equipment!)

This is how I knew the calculation was wrong, even before I worked it out correctly:
Your value for R1 + R5 is 2.71V, which is just a little bit more than half of 5V. For 2.71V to be correct R5 must be a little bit less than R1. R5 is actually roughly 5 times R1, so not just a little bit less than R1 but actually a lot more than R1. If R5 is a lot more than R1 then most of the voltage must be across R5 and a little bit across R1, making the voltage at the input closer to 1V than 2.5V. Worse than that, R1 has a 10k resistor in parallel with it, making the ratio of R1 (with the 10K) and R5 even more extreme.

You need to learn to do rough calculations like this to check the validity of the actual calculation.

Do you know how to calculate for resistors in series / parallel?

A home-made digital-to-analogue converter - yay! My immediate question is, why? I would rethink this solution.

Just a quick one here...
I master calculations in resistors quite well, actually.
Series, Parallel and even wheatstone.
Therefore I knew (or at least seem to now) how to use those calculations in an excel sheet.
I however, doe agree that I did not take a quick check on the values to estimate if those voltages where even possible.

I'm currently working (service engineer along with an overnight thunderstorm is a harsh combination)

I think I did something wrong in the math in Excel.
5v devided by the totall resistance, times the resistor of which I want to know the voltage...

5/(Rtot. + Rleft) * Rleft (where Rleft of course is 1/Rleft = 1/R + 1/Rpulldown)

Thanks for the reply Mark...
I allready passed those doubts and even though 100K is manageble, I saw 10K is possible as well.

My main concern now is my math, or the math excell did for me. :slight_smile:

Can you edit the spreadsheet to show the designations of the rows please? The equation is wrong, but I would prefer to use your spreadsheet as an example.

Tom, you were right that I did start another question on the Dutch section earlier. It was a whole other question and to be honnest, my intentions were to get an answer if 100K is appreciatable for an analogue input, and then disappear again
But allong the way, due to questions, answers, deepdiving, remarks and all, I ended up here. :slight_smile:
I think I'll make a link in the dutch section to this topic to be correct.

Concerning the questions about the switches...
There is always a comination of one left and one right switch.
The hardware is build that way. That is one of the reasons I cannot change the hardware setup. :wink:

1 Like