This project refers to an Arduino sketch which is used to produce LEDs animations. So, we use an 8-bit shift register (namely the 74HC595). This way we can drive 8 different LEDs in the output committing only three PINS of the Arduino.

If we want to drive more LEDs, we connect into a cascade form two or more (depending on the number of LEDs we want to support) shift registers and act accordingly.

For example, with this approach, if we wanted to drive 1024 LEDs, we would need only 3 PINS from the Arduino and some more 74HC595 in a cascade form. Otherwise, we should drive the 1024 LEDs with separate PINS from the Arduino, something which is of course impossible.

For more information you can get the project itself: