Resistors

Version 1.0   22 May 2015

Summary

The Resistors widget is a special purpose calculator to decode the colored bands
on resistors (and small capacitors).

Resistor Color Code

The widget uses the old color code where resistors are marked with three or four
colored bands. The first band (closest to an end of the resistor) indicates the
first digit of the resistor value. The second band indicates the second digit,
and the third band indicates a multiplier. The fourth band (if present) is
colored silver or gold and indicates a tolerance value, with which we will not
concern ourselves.

The color code is as follows:

            band1   band2   band3 (multiplier)
black               0       1
brown       1       1       10
red         2       2       100
orange      3       3       1000
yellow      4       4       10000
green       5       5       100000
blue        6       6       1000000
violet      7       7       10000000
gray        8       8       100000000
white       9       9       1000000000
silver                      0.01
gold                        0.1
The value (in ohms) is given by (10*band1 + band2)*band3.
Note that band1 is never black, except in the case of zero ohm resistors which
are marked with a single black band.

So [yellow, violet, red] has the value ((10*4)+7)*100 = 4700.

Description

We have a keypad with twelve keys, one for each of the colors, and a thirteenth reset key.



The widget uses a finite state machine model.

The state machine has three states:

1 the output field is clear (or contains the result of a previous calculation) and we are
    waiting for the first color
2 the first digit is in the output field and we are waiting for the second color
3 the first two digits are in the output field and we are waiting for the third color

The inputs to the state machine are the values of the 12 color keys.

As the colored keys are pressed the machine moves from state to state. Not all
keys are valid in each state, so our program checks for valid keys and alerts
when they are not.

Resistors with four encoding bands

Some resistors have four bands that encode the resistor value. The widget has a
popup menu to set the number of encoding bands. When there are four encoding
bands, the fourth band is used as the multiplier band. Bands 1, 2 and 3 then
specify three digits.

The value (in ohms) is given by (100*band1 + 10*band2 + band3)*band4.

International Notation

The widget has a popup menu to request output in International Notation.

Examples:

0.67    would be shown as 0R67
1.5     would be shown as 1R5
27      would be shown as 27R
320     would be shown as 320R
2200    would be shown as 2k2
6300000 would be shown as 6M3
The widget has a popup menu to choose between decoding resistors and (small)
capacitors. The basic unit for resistors is ohms, but the coded capacitor values
are in picoFarads.

Examples:

0.67    would be shown as 0p67
1.5     would be shown as 1p5
27      would be shown as 27p
320     would be shown as 320p
2200    would be shown as 2n2
6300000 would be shown as 6μ3
License

Resistors - A special purpose calculator to decode the colored bands on
resistors (and small capacitors).
Copyright © 2004-2015 Harry Whitfield

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
St, Fifth Floor, Boston, MA 02110-1301 USA

Widget Concept, Coding and Documentation

This program and associated documentation are Copyright 2004-2015 Harry Whitfield.
Harry Whitfield (G6AUC)
