Arduino
This is a great basic Arduino sketch that looks fantastic on this NanoRing. You may recognize it from the example code used in the NeoPixel Tiara guide. I've updated the Random Flash animation to show flashes of 5 colors on a ring with 3 LEDs.
If you are new to Arduino, check out this guide: Adafruit Arduino IDE Setup. This sketch uses the Adafruit NeoPixel library. You can learn more about Arduino libraries by reading this guide from Adafruit.
Plug the Gemma M0 into your computer with a working USB cable and select Gemma M0 in Tools -> board. Download the code from the download link below. Verify and upload the code to the Gemma M0.
// SPDX-FileCopyrightText: 2017 Mikey Sklar for Adafruit Industries
//
// SPDX-License-Identifier: MIT
#include <Adafruit_NeoPixel.h>
#define PIN 1
#define NUM_LEDS 3
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
// R G B
uint8_t myColors[][5] = {
{30, 144, 255}, // dodger blue
{232, 100, 255}, // purple
{204, 0, 204}, //
{200, 200, 20}, // yellow
{30, 200, 200}, // blue
};
// don't edit the line below
#define FAVCOLORS sizeof(myColors) / 5
void setup() {
strip.begin();
strip.setBrightness(20);
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
flashRandom(10, 1); // first number is 'wait' delay, shorter num == shorter twinkle
flashRandom(10, 3); // second number is how many neopixels to simultaneously light up
flashRandom(10, 2);
}
void flashRandom(int wait, uint8_t howmany) {
for(uint16_t i=0; i<howmany; i++) {
// pick a random favorite color!
int c = random(FAVCOLORS);
int red = myColors[c][0];
int green = myColors[c][1];
int blue = myColors[c][2];
// get a random pixel from the list
int j = random(strip.numPixels());
// now we will 'fade' it in 5 steps
for (int x=0; x < 5; x++) {
int r = red * (x+1); r /= 5;
int g = green * (x+1); g /= 5;
int b = blue * (x+1); b /= 5;
strip.setPixelColor(j, strip.Color(r, g, b));
strip.show();
delay(wait);
}
// & fade out in 5 steps
for (int x=5; x >= 0; x--) {
int r = red * x; r /= 5;
int g = green * x; g /= 5;
int b = blue * x; b /= 5;
strip.setPixelColor(j, strip.Color(r, g, b));
strip.show();
delay(wait);
}
}
// LEDs will be off when done (they are faded to 0)
}
Page last edited November 26, 2025
Text editor powered by tinymce.