Hardware multiplexing

An LED requires a high voltage on the anode side and a lower voltage on the cathode side in order to light up. The RGB LEDs used in the circuit are common cathodes, so we must apply a high voltage (3V3) on the RGB pins and a low voltage (0V) on the cathode pin (wired to pins 1 to 5 for each of the LEDs).

The cathode and RGB pin states are as follows:

Cathode and RGB pin states

Therefore, we can enable one or more of the RGB pins, but still control which of the LEDs are lit. We enable the pins of the LEDs we want to light up and disable the ones we don't. This allows us to use far fewer pins than we would need to control ...

Get Raspberry Pi 3 Cookbook for Python Programmers - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.