led lifeforms / lightforms


This project uses a microcontroller to animate LEDs. The output possibilities are endless and there are many ways to extend this project or combine it with other projects. The tutorials focus on using an Arduino Uno microcontroller and a number of different code examples that produce different LED effects.


Start by reading this short introduction to arduino. also available in 中文 (Chinese)

The getting started guide will explain how to download the software IDE (Integrated Development Environment) and set up your board. I highly recommend reading through this page carefully to prevent frustrating issues later on.

For this project, we’ll be working with the Arduino UNO, one of the most popular arduino boards. Arduino sells the Uno’s for $23 USD. Because Arduino is open-source, there are many equivalent boards. They are usually cheaper and, for the most part, they work exactly the same, although you may experience a few more quality control issues.

introduction to arduino


code examples


  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second