Quiz buzzer (Arduino)

Click here for a video

Bought some big buttons from Adafruit, Red and Blue – (https://www.adafruit.com/product/1192)

bought an arduino micro (finally – after a Nano and ESP8266 NodeMCU)
Like this one but from ebay (https://www.amazon.co.uk/KOOKYE-ATmega32U4-arduino-Leonardo-ATmega328/dp/B019SXN84E/ref=sr_1_4?ie=UTF8&qid=1523834104&sr=8-4&keywords=arduino+micro)

Bought a 5v buzzer (https://www.adafruit.com/product/1536)

And finally some WS2812B with Buzzer but I removed the buzzer as I had a louder one above.
like this one but from ebay (https://www.amazon.co.uk/Paleo-WS2812B-Buzzer-Skyline-Controller/dp/B01IA5JY58)

I cobbled together some blocks for the buttons and another block for lights and sound. (picture below)

Wired them together as per the schematic below

And then used the following code.

#include 

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800);
const int buttonPinB = 4; // the number of the Blue pushbutton pin
const int buttonPinR = 5; // the number of the Red pushbutton pin
const int buzzer = 9; //buzzer to arduino pin 9

int buttonStateB = 0; // variable for reading the pushbutton status
int buttonStateR = 0; // variable for reading the pushbutton status

void setup() {
 strip.begin();
 strip.show(); // Initialize all pixels to 'off'
 pinMode(buttonPinB, INPUT);
 pinMode(buttonPinR, INPUT);
 pinMode(buzzer, OUTPUT); // Set buzzer - pin 9 as an output
}

void loop() {
 // read the state of the Blue pushbutton value:
 buttonStateB = digitalRead(buttonPinB);
 // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
 if (buttonStateB == HIGH) {
 colorWipeR(strip.Color(0, 0, 255), 50); // Blue
 colorWipeR(strip.Color(0, 0, 0), 50); // Black
 delay(1000);
 }

buttonStateR = digitalRead(buttonPinR);
 // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
 if (buttonStateR == HIGH) {
 // turn LED on:
 colorWipe(strip.Color(255, 0, 0), 50); // Red
 colorWipe(strip.Color(0, 0, 0), 50); // Black
 delay(1000);
 } 
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
 for(uint16_t i=0; i<strip.numPixels(); i++) {
 strip.setPixelColor(5-i, c);
 tone(buzzer, 1000);
 strip.show();
 delay(wait);
 }
 noTone(buzzer);
}

// Fill the dots one after the other with a color
void colorWipeR(uint32_t c, uint8_t wait) {
 for(uint16_t i=0; i<strip.numPixels(); i++) {
 strip.setPixelColor(i, c);
 tone(buzzer, 1000);
 strip.show();
 delay(wait/2);
 noTone(buzzer);
 delay(wait/2);
 }
}