Go back

Individually addressable LED strip using infared input

Firmware

Alternating on and off LEDs with colour gradient

Figure 1: Alternating on and off LEDs with blue gradient

Alternating on and off LEDs with colour gradient

Figure 2: Alternating on and off LEDs with red gradient

Alternating on and off LEDs with colour gradient

Figure 3: Emulating fairy lights

Connected arduino with I/O

Figure 4: Connected arduino with I/O

Purpose

During the first lockdown in 2020, I wanted a project I could work on endlessly. Due to import delays and the difficulty of sourcing components, I found that a strip of individually addressable LEDs would be entertaining to work with as it was something I could set up in my room and view/work with daily. I also found that using an infrared remote as an input was very easy to do and allowed me to select multiple modes without uploading new code each time.

What did I learn?

This project was my first real introduction to the world of firmware development before I even knew what git was. Throughout this project, I learned how the Arduino IDE works and how it can connect to external inputs and outputs. This included writing to pins and doing so as part of a loop. I discovered how to use inputs like an infrared remote. Sadly I did not know about interrupts at the time and was not able to utilize them in my project, though I was still able to devise a method to break out of loops when given an input.

Future inspiration

This project is quite old now, and upon reviewing it, it has inspired me to remake the project. Without the use of an Arduino board but rather with an Atmega328p and a nicely assembled circuit. I will be able to use interrupts for the infrared remote, simplifying the code significantly. I will also be able to learn how to properly write to the LEDs instead of using an Arduino library, meaning I can learn their "single NZR communication mode".