Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino UNO Controlled NeoPixel Ring Light Show

Image of Arduino UNO Controlled NeoPixel Ring Light Show

Circuit Documentation

Summary

This circuit consists of an Arduino UNO microcontroller connected to six Adafruit 12 NeoPixel Rings. The NeoPixel rings are powered by the Arduino and are controlled via a single digital pin. The Arduino runs a program that varies the brightness of the LEDs in a yellow color.

Component List

Arduino UNO

  • Description: A microcontroller board based on the ATmega328P.
  • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0

Adafruit 12 NeoPixel Ring

  • Description: A ring of 12 individually addressable RGB LEDs.
  • Pins: OUT, VDD, IN, GND

Wiring Details

Arduino UNO

  • 5V: Connected to VDD of all Adafruit 12 NeoPixel Rings.
  • GND: Connected to GND of all Adafruit 12 NeoPixel Rings.
  • D6: Connected to IN of the first Adafruit 12 NeoPixel Ring.

Adafruit 12 NeoPixel Ring (1st Ring)

  • VDD: Connected to 5V of Arduino UNO.
  • GND: Connected to GND of Arduino UNO.
  • IN: Connected to D6 of Arduino UNO.
  • OUT: Connected to IN of the 2nd Adafruit 12 NeoPixel Ring.

Adafruit 12 NeoPixel Ring (2nd Ring)

  • VDD: Connected to 5V of Arduino UNO.
  • GND: Connected to GND of Arduino UNO.
  • IN: Connected to OUT of the 1st Adafruit 12 NeoPixel Ring.
  • OUT: Connected to IN of the 3rd Adafruit 12 NeoPixel Ring.

Adafruit 12 NeoPixel Ring (3rd Ring)

  • VDD: Connected to 5V of Arduino UNO.
  • GND: Connected to GND of Arduino UNO.
  • IN: Connected to OUT of the 2nd Adafruit 12 NeoPixel Ring.
  • OUT: Connected to IN of the 4th Adafruit 12 NeoPixel Ring.

Adafruit 12 NeoPixel Ring (4th Ring)

  • VDD: Connected to 5V of Arduino UNO.
  • GND: Connected to GND of Arduino UNO.
  • IN: Connected to OUT of the 3rd Adafruit 12 NeoPixel Ring.
  • OUT: Connected to IN of the 5th Adafruit 12 NeoPixel Ring.

Adafruit 12 NeoPixel Ring (5th Ring)

  • VDD: Connected to 5V of Arduino UNO.
  • GND: Connected to GND of Arduino UNO.
  • IN: Connected to OUT of the 4th Adafruit 12 NeoPixel Ring.
  • OUT: Connected to IN of the 6th Adafruit 12 NeoPixel Ring.

Adafruit 12 NeoPixel Ring (6th Ring)

  • VDD: Connected to 5V of Arduino UNO.
  • GND: Connected to GND of Arduino UNO.
  • IN: Connected to OUT of the 5th Adafruit 12 NeoPixel Ring.
  • OUT: Connected to IN of the 1st Adafruit 12 NeoPixel Ring.

Code Documentation

Arduino UNO Code

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUMPIXELS 72 // 6 rings * 12 LEDs per ring

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pixels.begin();
}

void loop() {
  for(int brightness = 0; brightness < 256; brightness++) {
    setAllPixelsColor(255, 255, 0, brightness); // Yellow color with varying brightness
    delay(10);
  }
  for(int brightness = 255; brightness >= 0; brightness--) {
    setAllPixelsColor(255, 255, 0, brightness); // Yellow color with varying brightness
    delay(10);
  }
}

void setAllPixelsColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness) {
  for(int i = 0; i < NUMPIXELS; i++) {
    pixels.setPixelColor(i, pixels.Color((red * brightness) / 255, (green * brightness) / 255, (blue * brightness) / 255));
  }
  pixels.show();
}

This code initializes the NeoPixel library and sets up the NeoPixel rings to display a yellow color with varying brightness. The setAllPixelsColor function is used to set the color and brightness of all the LEDs in the rings. The loop function continuously varies the brightness from 0 to 255 and back to 0, creating a pulsing effect.