/*** * ____ ___ ____ _ _ * / ___/ _ \___ \ / \ _ __ ___ _ __ ___| | * | | | | | |__) | / _ \ | '_ ` _ \| '_ \ / _ \ | * | |__| |_| / __/ / ___ \| | | | | | |_) | __/ | * \____\___/_____| /_/__ \_\_| |_| |_| .__/ \___|_| _ * | | | |/ _|_ _| / ___|| |_ _ _| |_| |_ __ _ __ _ _ __| |_ * | |_| | |_ | | \___ \| __| | | | __| __/ _` |/ _` | '__| __| * | _ | _| | | ___) | |_| |_| | |_| || (_| | (_| | | | |_ * |_| |_|_| |_| |____/ \__|\__,_|\__|\__\__, |\__,_|_| \__| * |___/ */ // Small example, with CO2 sensor and LED ring. // Required libraries: // LED Ring: #include "src/lib/Adafruit_NeoPixel/Adafruit_NeoPixel.h" // How many LEDs on the ring? const int LED_COUNT = 16; // Where is LED ring connected to micro-controller? const int NEOPIXELS_PIN = 5; // Define LED ring and CO2 sensor Adafruit_NeoPixel led_ring(LED_COUNT, NEOPIXELS_PIN, NEO_GRB + NEO_KHZ800); // Define variables uint32_t n; // The code in setup() will be run once, at startup. void setup() { // Transmission speed Serial.begin(115200); // Initialize LED ring. led_ring.begin(); led_ring.setBrightness(255); } // The code in loop() will be run as long as the micro-controller is powered up, in an infinite loop. void loop() { // First, disable every LED led_ring.clear(); // Check if air is good enough for (int i = 0; i < LED_COUNT; ++i) { if ((n >> i) & 1) { led_ring.setPixelColor(i, 0x00ff84); // Sophie BlueGreen // led_ring.setPixelColor(i, led_ring.ColorHSV(n * 1023 + 60000)); } } Serial.print(n); Serial.print(" = "); Serial.println(n, BIN); led_ring.show(); n = n + 1; // Wait half a second before next loop. // Micro-controller might crash if it has too much work to do. Please don't remove it! delay(1000); }