Weerstanden zijn passieve elektrische componenten met twee aansluitingen. Ze bemoeilijken de doorgang van elektrische stroom. In elektronische schakelingen worden weerstanden gebruikt om de stroomsterkte te verminderen, signaalniveaus aan te passen, spanningen te verdelen en transmissielijnen te beëindigen.

weerstand
Een weerstand van 2260 Ω (1% nauwkeurigheid) met vijf gekleurde banden (E96 reeks). Van links naar rechts coderen de kleuren rood-rood-blauw-bruin-bruin de waarden 2-2-6-1-1. De laatste twee bruine banden duiden de vermenigvuldigingsfactor ($$\times 10$$) en de nauwkeurigheid (1%) aan. Het bredere gat tussen deze banden is in dit geval niet zo makkelijk te onderscheiden van de gaten tussen de andere banden.

Om de sterkte van een weerstand aan te duiden, wordt gebruikgemaakt van de elektronische kleurcode (huidige internationale standaard: IEC 60062:20161). Hierbij worden drie, vier of vijf gekleurde banden op de weerstand aangebracht. Bij reparaties van gemonteerde weerstanden bleek het immers niet altijd eenvoudig om de gedrukte tekst te lezen op deze kleine componenten. Zeker als de bedrukte kant niet goed zichtbaar was omdat ze tegen het chassis of een andere component lag. Gekleurde banden hebben echter ook hun nadelen, zeker voor personen met kleurenblindheid. Oververhitting of vervuiling van een weerstand kunnen er ook voor zorgen dat bruin moeilijk te onderscheiden valt van rood of oranje.

kleurcode op weerstand
De sterkte van een weerstand wordt aangeduid met een code van 3, 4 of 5 gekleurde banden.

Om onderscheid te maken tussen links en rechts wordt er een breder gat gelaten tussen de voorlaatste (C/D) en de laatste (E) band. De sterkte van de weerstand wordt als volgt gecodeerd door de gekleurde banden:

Daarbij schrijft de IEC 60062:20162 standaard de volgende kleurcodes voor:

kleur significant cijfer vermenigvuldigingsfactor nauwkeurigheid (%)
(geen) - - 20
PINK - $$\times 10^{-3}$$ -
SILVER - $$\times 10^{-2}$$ 10
GOLD - $$\times 10^{-1}$$ 5
BLACK 0 $$\times 10^{0}$$ -
BROWN 1 $$\times 10^{1}$$ 1
RED 2 $$\times 10^{2}$$ 2
ORANGE 3 $$\times 10^{3}$$ -
YELLOW 4 $$\times 10^{4}$$ -
GREEN 5 $$\times 10^{5}$$ 0.5
BLUE 6 $$\times 10^{6}$$ 0.25
VIOLET 7 $$\times 10^{7}$$ 0.1
GRAY 8 $$\times 10^{8}$$ 0.05
WHITE 9 $$\times 10^{9}$$ -

Stel dat we bijvoorbeeld een weerstand hebben met vier gekleurde banden: geel-violet-rood-goud (van links naar rechts; YELLOW-VIOLET-RED-GOLD). Het eerste cijfer van de sterkte is een 4 (geel in bovenstaande tabel), het tweede cijfer een 7 (violet), gevolgd door 2 nullen (rood = $$\times 10^{2}$$): 4700 ohm. Goud geeft aan dat de nauwkeurigheid ±5% is, waardoor de werkelijke sterkte van de weerstand ergens tussen de 4465 en 4935 ohm ligt.

Opgave

De specificatie van een elektronische kleurcode wordt vastgelegd in een CSV-bestand (comma-separated values) waarvan elke record de eigenschappen van één kleur uit de standaard omschrijft. Elke record (regel) van het bestand bevat vier informatievelden die van elkaar gescheiden worden door komma's: i) naam van de kleur, ii) waarde van de kleur als significant cijfer van de sterkte, iii) waarde van de kleur als vermenigvuldigingsfactor van de sterkte (waarde $$m$$ betekent vermenigvuldigen met $$10^m$$) en iv) nauwkeurigheid van de weerstand (percentage).

Een informatieveld met een koppelteken (-) geeft aan dat de specificatie niet toelaat om die kleur (record) te gebruiken voor die eigenschap (veld). De nauwkeurigheid van de weerstand bij het ontbreken van band E (3 gekleurde banden) wordt in de specificatie voorgesteld als de nauwkeurigheid van de fictieve kleur NONE. De kleur NONE heeft per definitie koppeltekens staan voor eigenschappen ii) en iii). Dit is het CSV-bestand dat de huidige internationale standaard (IEC 60062:20163) voor de elektronische kleurcode specificeert:

color,significant digit,multiplicator,tolerance (%)
NONE,-,-,20
PINK,-,-3,-
SILVER,-,-2,10
GOLD,-,-1,5
BLACK,0,0,-
BROWN,1,1,1
RED,2,2,2
ORANGE,3,3,-
YELLOW,4,4,-
GREEN,5,5,0.5
BLUE,6,6,0.25
VIOLET,7,7,0.1
GRAY,8,8,0.05
WHITE,9,9,-

Gevraagd wordt:

De functies opzoeken en weerstand mogen geen onderscheid maken tussen hoofdletters en kleine letters in de namen van de kleuren en de eigenschappen die eraan doorgeven worden.

Voorbeeld

In onderstaande voorbeeldsessie gaan we ervan uit dat het CSV-bestand IEC60062_2016.csv4 zich in de huidige directory bevindt.

>>> specificatie = lees_specificatie('IEC60062_2016.csv5')
>>> specificatie
{'none': {'nauwkeurigheid': 20.0}, 'pink': {'factor': -3}, 'silver': {'factor': -2, 'nauwkeurigheid': 10.0}, 'gold': {'factor': -1, 'nauwkeurigheid': 5.0}, 'black': {'cijfer': 0, 'factor': 0}, 'brown': {'cijfer': 1, 'factor': 1, 'nauwkeurigheid': 1.0}, 'red': {'cijfer': 2, 'factor': 2, 'nauwkeurigheid': 2.0}, 'orange': {'cijfer': 3, 'factor': 3}, 'yellow': {'cijfer': 4, 'factor': 4}, 'green': {'cijfer': 5, 'factor': 5, 'nauwkeurigheid': 0.5}, 'blue': {'cijfer': 6, 'factor': 6, 'nauwkeurigheid': 0.25}, 'violet': {'cijfer': 7, 'factor': 7, 'nauwkeurigheid': 0.1}, 'gray': {'cijfer': 8, 'factor': 8, 'nauwkeurigheid': 0.05}, 'white': {'cijfer': 9, 'factor': 9}}

>>> opzoeken('BLUE', 'cijfer', specificatie)
6
>>> opzoeken('black', 'FACTOR', specificatie)
0
>>> opzoeken('PINK', 'NAUWKEURIGHEID', specificatie)
Traceback (most recent call last):
AssertionError: ongeldige code
>>> opzoeken('none', 'nauwkeurigheid', specificatie)
20.0

>>> weerstand('yellow violet red gold', specificatie)
'4700.000Ω (±5.00%)'
>>> weerstand('orange orange brown', specificatie)
'330.000Ω (±20.00%)'
>>> weerstand('GRAY RED ORANGE GOLD', specificatie)
'82000.000Ω (±5.00%)'
>>> weerstand('green red brown black brown', specificatie)
'521.000Ω (±1.00%)'
>>> weerstand('green gold brown', specificatie)
Traceback (most recent call last):
AssertionError: ongeldige code

Merk op dat het eerste voorbeeld voor de functie weerstand overeenkomt met het voorbeeld dat uitgewerkt wordt onder de tabel in de inleiding van deze opgave. De drie andere voorbeelden van de functie weerstand hebben we gehaald uit de figuur in de inleiding van deze opgave. Hieronder leggen we in detail uit hoe de sterkte en de nauwkeurigheid kan bepaald worden van weerstanden die gelabeld zijn met het patroon van gekleurde banden uit deze drie voorbeelden.

voorbeelden: functie weerstand
Uitgewerkte voorbeelden die gebruikt worden bij het testen van de functie weerstand.