Here is a modified version of their example code that should meet your needs. Please read the code comments carefully. You can change the speed and direction with a couple simple changes.
// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1
#define PIN 1
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 16
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 500; // Adjust me for speed, 500 = 1/2 second
int pinNum = 0;
void setup() {
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
pinNum++; //Change me to pinNum--; for reverse direction
for(int i=0;i<NUMPIXELS;i++){
pinNum++; //Change me to pinNum--; for reverse direcction
if(pinNum > 15){
pinNum = 0;
}
if(i==0 | i==1 | i==2){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(pinNum, pixels.Color(255,255,255)); // White
pixels.show(); // This sends the updated pixel color to the hardware.
}
if(i==3 | i==4 | i==5){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(pinNum, pixels.Color(0,0,0)); // Off
pixels.show(); // This sends the updated pixel color to the hardware.
}
if(i==6 | i==7 | i==8){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(pinNum, pixels.Color(255,255,255)); // White
pixels.show(); // This sends the updated pixel color to the hardware.
}
if(i==9 | i==10){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(pinNum, pixels.Color(0,0,0)); // Off
pixels.show(); // This sends the updated pixel color to the hardware.
}
if(i==11 | i==12 | i==13){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(pinNum, pixels.Color(255,255,255)); // White
pixels.show(); // This sends the updated pixel color to the hardware.
}
if(i==14 | i==15){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(pinNum, pixels.Color(0,0,0)); // Off
pixels.show(); // This sends the updated pixel color to the hardware.
}
}
delay(delayval);
}