Nano arduino - WS2812 - problem cpu conect

Hi, I leave my query, I’m controlling 8 led strips ws2812 with nano arduino, 4 strips attached, controlled by pin 4, two other strips controlled by pin 6 (until here all right), now I have two more strips that I also tried to control them in series with pin 6 without success, then I wanted to control them with pin 8 and I did not succeed.

I have connected my nano arduino to my notebook and the circuit works correctly! crazy :o >:( .
Any advice? I leave the scheme, thanks!

The CPU is 32 bits, the 64-bit notebook, only difference

 #include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h> 

#define PIN 4
#define PIN2 6
#define PIN3 8


#define NUMPIXELS    14
#define NUMPIXELS2   32
#define NUMPIXELS3   7

Adafruit_NeoPixel pixels1 = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2 = Adafruit_NeoPixel(NUMPIXELS2, PIN2 , NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels3 = Adafruit_NeoPixel(NUMPIXELS3, PIN3 , NEO_GRB + NEO_KHZ800);

const byte rowsCount = 1;
const byte columsCount = 1;
 
char keys[rowsCount][columsCount] = {
   { '9' }
};
 
 byte rowPins[rowsCount] = {3};
 byte columnPins[columsCount] = {7};
 
Keypad keypa = Keypad(makeKeymap(keys), rowPins, columnPins, rowsCount, columsCount);
 
void setup() {
  
   pixels1.begin(); 
   pixels2.begin(); 
   pixels3.begin(); 
   Serial.begin(9600);
   
}
 
void loop() {
  
    char key = keypa.getKey();
   
   if (key) {
      String keySalid = "A-";
      keySalid.concat(key);
      Serial.println(keySalid);
   }
  

   uint32_t verde = pixels1.Color(100,0,0);
   uint32_t rojo = pixels1.Color(0,100,0);
   uint32_t azul = pixels1.Color(0,0,100);
   uint32_t verde2 = pixels2.Color(100,0,0);
   uint32_t rojo2 = pixels2.Color(0,100,0);
   uint32_t azul2 = pixels2.Color(0,0,100);
   uint32_t verde3 = pixels3.Color(100,0,0);
   uint32_t rojo3 = pixels3.Color(0,100,0);
   uint32_t azul3 = pixels3.Color(0,0,100);
   
    while (Serial.available()) {; 
  
     String anclaje = Serial.readStringUntil(';');
     //Serial.print(anclaje);
    String color;
 
    int desde;
    int hasta;
    color = anclaje.substring(0,2);
    int nro_anc = anclaje.substring(2,4).toInt();
    //hasta es sin incluir
    int pix = 1;
    if      (nro_anc == 4){ nro_anc = 1;pix = 2;}
    else if (nro_anc == 3) {nro_anc = 2;pix = 2;}
    else if (nro_anc == 2) {nro_anc = 1;pix = 3;}
    else if (nro_anc == 1) {nro_anc = 2;pix = 3;}
  
    if(nro_anc > 4 )
    {  
      hasta = (nro_anc * 8) - 32;  
      desde = hasta - 8;
      pix = 1;
    }
    else
    {
      hasta = nro_anc * 7; desde = hasta - 7;
    }
    Serial.print(nro_anc);
    Serial.print(desde);
    Serial.print(hasta);
      
    
 
    if(color == "VV")
    {
        for(int i = desde; i < hasta; i++)
         {
          if(nro_anc < 5)
          {
            if(pix == 2)
            {
              pixels1.setPixelColor(i, verde); 
              pixels1.show();
            }
            else
            {
              pixels3.setPixelColor(i, verde3); 
              pixels3.show();
             
            }   
          }
          else
          {
            pixels2.setPixelColor(i, verde2); 
            pixels2.show(); 
          }
          
         }
        
      }
      if(color == "RR")
      {
        for(int i = desde; i < hasta; i++)
         {
          if(nro_anc < 5)
          {
            if(pix == 2)
            {
               pixels1.setPixelColor(i, rojo); 
               pixels1.show();
            }
            else
            {
              pixels3.setPixelColor(i, rojo3); 
              pixels3.show();
              
            }  
          }
          else
          {
           pixels2.setPixelColor(i, rojo2); 
           pixels2.show(); 
          }
       
         }
      }
      if(color == "VR")
      {
        
        for(int i = desde; i < hasta; i++)
        {
          if(nro_anc < 5)
          {

            if(pix == 2)
            {
              pixels1.setPixelColor(i, azul); 
              pixels1.show();
            }
            else
            {
              pixels3.setPixelColor(i, azul3); 
              pixels3.show();
            
            }
           }
            else
            {
              pixels2.setPixelColor(i, azul2); 
              pixels2.show();  
              
            }  
            
        }
      }
    }  
      
  
 
}


You should have a 100uF or 470uF cap across the power cables for each strip.

How are you powering the Nano when not connected to the pc/laptop? You do not show a connection from the 5V PSU to the Nano in your diagram.

Can you clarify which strips work and which do not when the Nano is connected to the laptop and when powered separately? What else is different in those two situations, if anything?

PaulRB:


You should have a 100uF or 470uF cap across the power cables for each strip.

How are you powering the Nano when not connected to the pc/laptop? You do not show a connection from the 5V PSU to the Nano in your diagram.

Can you clarify which strips work and which do not when the Nano is connected to the laptop and when powered separately? What else is different in those two situations, if anything?

The nano in both the CPU and the notebook is connected by usb, for the project must be connected to the CPU.

Connected to the notebook all strips work, connected to the CPU only work 2, note the arrow that says Not Found

What do you mean by "CPU"? A desktop PC?

What do you mean by "Not Found"? Do you see an error message somewhere. Or do you mean "Not Lit"?

Have you measured the voltage at the beginning of each strip, the working ones and the non-working ones? Measure them when connected to the laptop and when connected to the "CPU".

Have you tried connecting the data output of strip 2 to the input of strip 3? Why do you want to connect strips 3 & 4 directly to the Nano?

Please try to answer each question above, even if you answer is "I don't understand the question".

Sorry for my English, I do not handle it very well.

CPU = A desktop PC

Not Lit, yes

Have you measured the tension at the beginning of each strip, the working one and the one that does not work? Measure them when they are connected to the laptop and when they are connected to the "CPU".

Both tensions arrived somewhat distorted, the strange thing is that if it worked from my laptop, I changed the strip and I added a ceramic capacitor of 0.1 and a capacitor of 1000 and everything worked correctly, the voltage signals are perfect

Have you tried connecting the data output from strip 2 to the input of strip 3? Why do you want to connect strips 3 and 4 directly to the Nano?

There was no signal, I thought he was missing being connected in series

It sounds like strip 2 is faulty, if there is no output signal. Can you swap strips 2 & 3?

Your "somewhat distorted" voltages could be due to poor quality or too thin wires. Can you try other cables?

I have placed flat cable and a noticeably improved.
What cables do you advise me to place?

I think awg22 cable should be good enough if it is single core. For stranded wire, maybe awg20 or awg18.