kontiki said:
Hi, does anyone know where a reference table of parallel resistors
could be found?The table is very useful for quick accurate resultant
resistances (to two places of decimal), the tables I've got are from
Practical Electronics Jan. 1990? and have faded to the point of being
unusable.Most non-standard resistance values are easily ascertained
e.g.for 17 ohms->75//22
quickly and easily!
This may be of use, if you have Matlab- it uses a set of standard
values to find a paralleled resistance within a specified tolerance.
You invoke it by
parallel(neededResistance, tolerance).
It is followed by an almost identical program to find voltage divider
combinations, given a desired ratio and a tolerance.
The final entry in this post is a list of standard ratios for precision
resistors. It can be copied and pasted into the Matlab command window,
and it will save the list to a file, which will be called by the two
programs.
You could easily substitute a list of your own available resistors.
With the given list of resistors, the programs work within one decade;
they could be improved by automatically going up and down a decade, but
that won't matter if you enter a list of the actual resistors you have.
--
John
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Find standard resistor values to get a paralleled resistance.
% Result will be shown as columns with resistance achieved and
% the resistors used.
% Call function with needed resistance and optional tolerance
% (1% will be used if not specified).
function [result] = parallel(neededR, tol)
if (nargin < 2) tol = 0.01; end
load('resistors.mat')
lowlim = 1 - tol;
hilim = 1 + tol;
format compact
p = [0; 0; 0];
L = length(r);
for k = 1 : L
for m = 1 : L
g = r(k) * r(m) / (r(k) + r(m));
if ((g >= lowlim * neededR ) & (g <= hilim * neededR))
p1=[g; r(k); r(m)];
p = [p p1]; % concatenate current value to the result
end
end
end
if (size(p,2)>1)
result = p
,2:size(p,2));
else result = 'no combination found';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Find standard resistor values to get voltage division ratio
% enter ratio as such or as explicit division- e.g, 0.4 or 2/5.
% Result will be shown as columns with ratio achieved and
% the resistors used.
% Call function with needed resistance and optional tolerance
% (1% will be used if not specified).
function [result] = vdivide(ratio, tol)
if (nargin < 2) tol = 0.01;
end
load('resistors.mat') % load up list of resistors
lowlim = 1 - tol;
hilim = 1 + tol;
format compact
p=[0;0;0];
L = length(r);
for k = 1 : L
for m = 1 : L
g = r(k) / (r(k) + r(m));
if ((g >= lowlim * ratio ) & (g <= hilim * ratio))
p1=[g; r(k); r(m)];
p = [p p1]; % concat value found to result
end
end
end
if (size(p,2)>1)
result = p
,2:size(p,2));
else result = 'no combination found';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
r=[1.0000 1.0200 1.0500 1.0700 1.1000 1.1300 1.1500 1.1800 1.2000...
1.2100 1.2400 1.2700 1.3000 1.3300 1.4000 1.4700 1.5000 1.5400...
1.5800 1.6000 1.6200 1.6500 1.6900 1.7400 1.7800 1.8000 1.8200...
1.8700 1.9100 1.9600 2.0000 2.0500 2.1000 2.1500 2.2000 2.2100...
2.2600 2.3200 2.3700 2.4000 2.4300 2.4700 2.4900 2.5500 2.6100...
2.6700 2.7000 2.7400 2.8000 2.8700 2.9400 3.0000 3.0100 3.0900...
3.1600 3.2400 3.3000 3.3200 3.4000 3.4800 3.5700 3.6000 3.6500...
3.7400 3.8300 3.9000 3.9200 4.0200 4.1200 4.2200 4.3000 4.3200...
4.4200 4.5300 4.6400 4.7000 4.7500 4.8700 4.9900 5.0000 5.1000...
5.2300 5.3600 5.4900 5.6000 5.6200 5.7600 5.9000 6.0400 6.1900...
6.2000 6.3400 6.4900 6.6500 6.8000 6.8100 6.9800 7.1500 7.3200...
7.5000 7.6800 7.8700 8.0600 8.2000 8.2500 8.4500 8.6600 8.8700...
9.0000 9.0900 9.1000 9.3100 9.5300 9.7600 10.0000]
save 'resistors.mat',r;