Ok then strip it back, just try a code that simply fills one strip with the same colour, green will do. Post that code so we can look at it. And say what number led gives what colour.
I have tried on my girlfriend's helmet, which is the a similar build, and we have temporarily connected only the main dome, so 1 strip, 1 color (0,150,0) in the program, and we also get multiple colors displayed.
On my helmet:
Strip 1 (eye): 11 LEDs, all green
Strip 2 (eye): 11 LEDs, all green
Strip 3 (main dome) 66 LEDs:
LED: Color:
0 White
1 Blue
2 Red
3 White
4 Blue
5 Red
6 Green
7 Green
8 Green
9 Green
10 Green
11 Green
12 Green
13 Green
14 Green
15 Green
16 White
17 Blue
18 red
19 White
20 Blue
21 red
22 white
23 blue
24 red
25 white
26 blue
27 red
28 white
29 blue
30 red
31 white
32 blue
33 red
34 white
35 blue
36 red
37 white
38 blue
39 blue
40 white
41 blue
42 red
43 white
44 blue
45 red
46 white
47 blue
48 blue
49 blue
50 blue
51 blue
52 blue
53 blue
54 blue
55 blue
56 blue
57 blue
58 blue
59 blue
60 blue
61 red
62 red
63 red
64 red
65 white
Code is still the simple one, with only one color (other codes tried give unexpected colors, with only 6 to 15 being right):
// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1
#define PIN 6
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 88
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 10; // delay for half a second
void setup() {
// This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
// End of trinket special code
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
}
}
Are you using a real Arduino Pro Mini or is it a ripoff clone?
I use generic ones, I have tried with two makes with the same results:
This one and this one.
Thank you for the help!