Arduino nano, ldr, neopixel and buzzer

Hi,
i am working in a little project like an alarm, the neopixel is on while le LDR is sensig 100 or more and one the LDR detects below 50 the leds turn off and the buzzer sounds.
My problem is that when the neopixel is on, a sound comes out of the buzzer (but the buzzer is no tone) and when the buzzer is ON a weird sound comes out.

I checked it without the LEDs and sounds good the buzzer, but when i connect the neopixel leds sounds weird, tone or no tone :confused:

I hope the sketch helps, also attached is a drawing of the circuit

Hope someone can help me, regards

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif


#define PIN            8


#define NUMPIXELS      16


Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 500; 
const int buzzer=5;


void setup() {
#if defined (__AVR_ATtiny85__)
  if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif

pinMode(buzzer, OUTPUT);
Serial.begin(9600);
  pixels.begin(); 
  pixels.setPixelColor(0, pixels.Color(0,204,204)); 
    pixels.setPixelColor(1, pixels.Color(0,204,204));
    pixels.setPixelColor(2, pixels.Color(0,204,204));
    pixels.setPixelColor(3, pixels.Color(0,204,204));
    pixels.setPixelColor(4, pixels.Color(0,204,204));
    pixels.setPixelColor(5, pixels.Color(0,204,204));
    pixels.setPixelColor(6, pixels.Color(0,204,204));
    pixels.setPixelColor(7, pixels.Color(0,204,204));
    pixels.setPixelColor(8, pixels.Color(0,204,204));
    pixels.setPixelColor(9, pixels.Color(0,204,204));
    pixels.setPixelColor(10, pixels.Color(0,204,204));
    pixels.setPixelColor(11, pixels.Color(0,204,204));
    pixels.setPixelColor(12, pixels.Color(0,204,204));
    pixels.setPixelColor(13, pixels.Color(0,204,204));
    pixels.setPixelColor(14, pixels.Color(0,204,204));
    pixels.setPixelColor(15, pixels.Color(0,204,204));
    pixels.show(); 

    delay(1000);

      pixels.setPixelColor(0, pixels.Color(0,0,0)); 
   pixels.setPixelColor(1, pixels.Color(0,0,0)); 
   pixels.setPixelColor(2, pixels.Color(0,0,0)); 
   pixels.setPixelColor(3, pixels.Color(0,0,0)); 
   pixels.setPixelColor(4, pixels.Color(0,0,0)); 
   pixels.setPixelColor(5, pixels.Color(0,0,0)); 
   pixels.setPixelColor(6, pixels.Color(0,0,0)); 
   pixels.setPixelColor(7, pixels.Color(0,0,0)); 
   pixels.setPixelColor(8, pixels.Color(0,0,0)); 
   pixels.setPixelColor(9, pixels.Color(0,0,0)); 
   pixels.setPixelColor(10, pixels.Color(0,0,0)); 
   pixels.setPixelColor(11, pixels.Color(0,0,0)); 
   pixels.setPixelColor(12, pixels.Color(0,0,0)); 
   pixels.setPixelColor(13, pixels.Color(0,0,0)); 
   pixels.setPixelColor(14, pixels.Color(0,0,0)); 
   pixels.setPixelColor(15, pixels.Color(0,0,0)); 
    pixels.show(); 
    delay(500);


void loop() {
  
}
  int LDR=analogRead(A0);
  
if(LDR<50)
{
   pixels.begin(); 
  pixels.setPixelColor(0, pixels.Color(0,204,204)); 
    pixels.setPixelColor(1, pixels.Color(0,204,204));
    pixels.setPixelColor(2, pixels.Color(0,204,204));
    pixels.setPixelColor(3, pixels.Color(0,204,204));
    pixels.setPixelColor(4, pixels.Color(0,204,204));
    pixels.setPixelColor(5, pixels.Color(0,204,204));
    pixels.setPixelColor(6, pixels.Color(0,204,204));
    pixels.setPixelColor(7, pixels.Color(0,204,204));
    pixels.setPixelColor(8, pixels.Color(0,204,204));
    pixels.setPixelColor(9, pixels.Color(0,204,204));
    pixels.setPixelColor(10, pixels.Color(0,204,204));
    pixels.setPixelColor(11, pixels.Color(0,204,204));
    pixels.setPixelColor(12, pixels.Color(0,204,204));
    pixels.setPixelColor(13, pixels.Color(0,204,204));
    pixels.setPixelColor(14, pixels.Color(0,204,204));
    pixels.setPixelColor(15, pixels.Color(0,204,204));
    pixels.show(); 
    tone(buzzer,550);
      
}

   if(LDR>100)
{
  Serial.available();
  pixels.begin(); 
  pixels.setPixelColor(0, pixels.Color(0,204,204)); 
    pixels.setPixelColor(1, pixels.Color(0,204,204));
    pixels.setPixelColor(2, pixels.Color(0,204,204));
    pixels.setPixelColor(3, pixels.Color(0,204,204));
    pixels.setPixelColor(4, pixels.Color(0,204,204));
    pixels.setPixelColor(5, pixels.Color(0,204,204));
    pixels.setPixelColor(6, pixels.Color(0,204,204));
    pixels.setPixelColor(7, pixels.Color(0,204,204));
    pixels.setPixelColor(8, pixels.Color(0,204,204));
    pixels.setPixelColor(9, pixels.Color(0,204,204));
    pixels.setPixelColor(10, pixels.Color(0,204,204));
    pixels.setPixelColor(11, pixels.Color(0,204,204));
    pixels.setPixelColor(12, pixels.Color(0,204,204));
    pixels.setPixelColor(13, pixels.Color(0,204,204));
    pixels.setPixelColor(14, pixels.Color(0,204,204));
    pixels.setPixelColor(15, pixels.Color(0,204,204));
    pixels.show(); 
  noTone(buzzer);
      
}
 }

circuit.PNG

The problem is that the Neopixel library has to turn off the interrupts to get the precise timing they need. This distrupts the tone function. Not a lot you can do without hardware assistance.

So, the neopixel can not work simultaneously with the buzzer?
What do you mean or suggest by hardware assistance?

Appreciate your comments and solutions

Regards

From Overview | Adafruit DotStar LEDs | Adafruit Learning System

Not compatible with interrupts (e.g. Arduino Servo library or tone function

Hardware assistance means something like found off links here Conflict with tone() ? · Issue #10 · adafruit/Adafruit_NeoPixel · GitHub

I will check that,
thank you