Skip to content

Resistor Color

Intro

If you want to build something using a Raspberry Pi, you'll probably use resistors. For this exercise, you need to know two things about them:

Each resistor has a resistance value. Resistors are small - so small in fact that if you printed the resistance value on them, it would be hard to read. To get around this problem, manufacturers print color-coded bands onto the resistors to denote their resistance values. Each band has a position and a numeric value.

The first 2 bands of a resistor have a simple encoding scheme: each color maps to a single number.

In this exercise you are going to create a helpful program so that you don't have to remember the values of the bands.

These colors are encoded as follows:

  • Black: 0
  • Brown: 1
  • Red: 2
  • Orange: 3
  • Yellow: 4
  • Green: 5
  • Blue: 6
  • Violet: 7
  • Grey: 8
  • White: 9

Task

The goal of this exercise is to create a way:

to look up the numerical value associated with a particular color band to list the different band colors

The Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef RESISTOR_COLOR_H
#define RESISTOR_COLOR_H
/*
- Black: 0
- Brown: 1
- Red: 2
- Orange: 3
- Yellow: 4
- Green: 5
- Blue: 6
- Violet: 7
- Grey: 8
- White: 9
*/


typedef enum {
    BLACK=0,
    BROWN,
    RED,
    ORANGE,
    YELLOW,
    GREEN,
    BLUE,
    VIOLET,
    GREY,
    WHITE
} resistor_band_t;

int color_code(resistor_band_t test);

resistor_band_t *colors(void);

#endif
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include "resistor_color.h"

resistor_band_t *colors(void)
{
    static resistor_band_t var01[] = {BLACK,
                                      BROWN,
                                      RED,
                                      ORANGE,
                                      YELLOW,
                                      GREEN,
                                      BLUE,
                                      VIOLET,
                                      GREY,
                                      WHITE};
    return var01;
}

int color_code(resistor_band_t test)
{
    return test;
}

Last update: January 22, 2021

Comments