#include #include #define rxPin 8 #define txPin 7 Adafruit_NeoPixel strip = Adafruit_NeoPixel (24,2,NEO_RGB + NEO_KHZ800); SoftwareSerial mySerial(rxPin, txPin); // RX, TX char myChar ; // function prototypes void ani1(); void ani2(); void ani3(); void ani4(); void ani5(); // array of function pointers void (*animations[])() = { ani1, ani2, ani3, ani4, ani5 }; void setup() { Serial.begin(9600); Serial.println("Goodnight moon!"); mySerial.begin(9600); mySerial.println("Hello, world?"); } void loop(){ if(mySerial.available()){ myChar = mySerial.read(); myChar -= '1'; Serial.print(myChar); if (myChar < sizeof(animations) / sizeof(animations[0])) { // run the selected animation animations[myChar](); } } if(Serial.available()){ myChar = Serial.read(); myChar -= '1'; Serial.print(myChar); if (myChar < sizeof(animations) / sizeof(animations[0])) { // run the selected animation animations[myChar](); } } } void ani1(){ for(int c=0;c<24;c++){ strip.setPixelColor(c,strip.Color(255,0,0)); delay(100); strip.show(); Serial.print(c); } } void ani2(){ Serial.print("animation2"); } void ani3(){ Serial.print("animation3"); } void ani4(){ Serial.print("animation4"); } void ani5(){ Serial.print("animation5"); }