By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,814 Members | 1,136 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,814 IT Pros & Developers. It's quick & easy.

Req: Calculating Preferred Values ("E Series") for electronic components

P: 17
Hi Folks!

I was trying to write some Python script to calculate resistor values for electronics projects, and wanted to generate lists of the preferred resistor values in each standard commercially available ranges of values (E6, E12, E24 etc.) by formula rather than using large unwieldy lists or directories..

From what I've been able to find by reading & Googling, the "E series" of preferred values are based on a logarithmic scale / geometric series in which each decade is divided into 'E' values (where E = 6,12,24,48...), and the value of the nth member of each series may be calculated using the formula:

10^(n/E)

So for the E12 series, this has 12 elements which should have values of (when rounded & expressed to 2 sig figures):
10,12,15,18,22,26,32,38,46,56,68,83

However, the commercially available E12 series for resistors actually goes:
10,12,15,18,22,27,33,39,47,56,68,82

The 6th-8th and 12th elements in the commercially available series deviate from the calculated values.

I'm pretty sure my maths & reasoning are correct.
Does anyone know the reason for the discrepancy?
Maybe some accident of history?

Without any obvious pattern to the deviations, I can't see how to write a formula to correct for this.

As I mentioned, I could create a workaround by writing the correct values in a series of lists or dictionaries for each of the commonly used E series (E6, E12, E24, E48), but I was hoping for a minimalist elegant solution to generate these numbers by formula.

Would be very grateful for any explanations for the deviation and elegant solutions!

Many thanks in anticipation & Happy New Year to you all!

Dave
(Swansea,UK)
Jan 7 '11 #1
Share this Question
Share on Google+
4 Replies


Rabbit
Expert Mod 10K+
P: 12,383
While the formula is a way to approximate the values, the values are not derived from the formula. The E12 series is designed for a tolerance range of 10%. If you calculate the tolerance range using the numbers from the formula, you will get significantly more overlap in addition to a tolerance range larger than 10% for some of the values.
Jan 7 '11 #2

P: 17
Thanks Rabbit

Is there any way to calculate the values for the commercial E-series by formula without resorting to writing each element for each series in the form of multiple lists or dictionaries?

Thanks!

Dave
Jan 7 '11 #3

Rabbit
Expert Mod 10K+
P: 12,383
Not that I know of, at least not with a single formula. It's possible to do so by emulating the thought process.

For example, if I was to calculate E12 #5, the approximation formula would give 2.6, 10% below 2.6 would be 23.4. The top range for #4 is 24.2. This gives an overlap of 0.8. So I would then check 2.7 which gives a range starting at 24.3. This has no overlap so I would use 2.7 instead of 2.6.

But in all honesty, whether or not this holds true for every case can't be known without calculating all the values by hand.
Jan 7 '11 #4

P: 17
OK!
Thanks for your help
Best wishes
Dave
Jan 7 '11 #5

Post your reply

Sign in to post your reply or Sign up for a free account.