/*
* Steve Barth 
*   2022
*/

#include <Adafruit_NeoPixel.h>

#define PIN       2 // drive pin
#define NUM_LEDS 64 //32 
#define delayval 20

Adafruit_NeoPixel ring = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB);

int sine[] = // total pixels in array
{
   // 4 ring total 70
  4,  3,  2,  1,  0, 15, 14, 13, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28,
  36, 35, 34, 33, 32, 47, 46, 45, 44, 52, 53, 54, 55, 56, 57, 58, 59, 60,
  61, 62, 63, 48, 49, 50, 51, 52, 44, 43, 42, 41, 40, 39, 38, 37, 36, 28,
  29, 30, 31, 16, 17, 18, 19, 20, 12, 11, 10,  9,  8,  7,  6,  5
  //*/
  /*   // 2 ring total 34
  5, 4,  3,  2,  1, 15, 14, 13, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 
  30, 31, 16, 17, 18, 19, 20, 12, 11, 10,  9,  8,  7,  6,  5,  4, 
  */
};

uint32_t color = ring.Color(255, 50, 5); // color R-G-B

void setup() 
{
  ring.begin();
  ring.setBrightness(255);  // 0-255 brightness
  ring.clear();             // clear all pixels
}

void loop() {
  for (int i = 0; i < 70/*34*/; i++)                // animation length
  {
    ring.setPixelColor(sine[i],0);                  // not used pixel off
    ring.setPixelColor(sine[(i + 7) % 70 ], color); // setting pixel animation
    ring.show();                                    // show animation
    delay(delayval);                                // animation speed setting
  }
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
ring1:GND
ring1:VCC
ring1:DIN
ring1:DOUT
ring2:GND
ring2:VCC
ring2:DIN
ring2:DOUT
ring3:GND
ring3:VCC
ring3:DIN
ring3:DOUT
ring4:GND
ring4:VCC
ring4:DIN
ring4:DOUT