#include int Power = 11; // Pin necessary to turn on the RGB int PIN = 12; // Pin necessary to program RGB int currentColorIndex = 0; // Index of the current color int frequency = 1000; // Initial PWM frequency #define NUMPIXELS 1 // Define the number of rows of the Neopixel Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Necessary to program the neopixel void setup() { pixels.begin(); pinMode(Power, OUTPUT); // Pin to turn on the Neopixel digitalWrite(Power, HIGH); Serial.begin(); Serial.setTimeout(10); } void loop() { // Increment the index of the color currentColorIndex++; // Reset the index when it reaches the total number of colors if (currentColorIndex >= 5) { currentColorIndex = 0; } // Change the color of the NeoPixel according to the index pixels.clear(); // Function to program to change the colors of the RGB switch (currentColorIndex) { case 0: pixels.setPixelColor(0, pixels.Color(15, 25, 205)); // Blue break; case 1: pixels.setPixelColor(0, pixels.Color(103, 25, 205)); // Purple break; case 2: pixels.setPixelColor(0, pixels.Color(233, 242, 205)); // Yellow break; case 3: pixels.setPixelColor(0, pixels.Color(233, 23, 23)); // Red break; case 4: pixels.setPixelColor(0, pixels.Color(12, 66, 101)); // DarkBlue break; } pixels.show(); // Increment the frequency for the next color change frequency += 100; if (frequency > 600) { frequency = 200; // Reset the frequency when it reaches 2000 Hz } delay(200); // Wait for a brief time to avoid rapid color changes }