Hello everyone, thank you for your patience! I was able to create a mininal example that shows the exact effect that is happening. At first, all of the LED lights initilize correctly. Then, as I start to turn the LEDs on/off they also change colors.
The initial colors are as follows:
Channel 1 - red
Channel 2 - green
Channel 3 - blue
For example, Channel 1 changes to a blue color when turning off. But back to red when turning on. Channel 2 remains the same color throughout the process. Channel 3 changes to a red color when turning off. But back to blue when turning on. I should also note that the last pixel in channel 1 remains blue. And the last pixel in Channel 3 remains green.
Lastly for those wondering, I am running an Arduino Mega
#include <Adafruit_NeoPixel.h>
//#include "MemoryFree.h"
Adafruit_NeoPixel m_StripReference_1;
Adafruit_NeoPixel m_StripReference_2;
void setup() {
Serial.begin(9600);
// put your setup code here, to run once:
m_StripReference_1 = Adafruit_NeoPixel(144, 48, NEO_GRBW + NEO_KHZ800);
m_StripReference_2 = Adafruit_NeoPixel(144, 49, NEO_GRBW + NEO_KHZ800);
m_StripReference_1.begin();
m_StripReference_2.begin();
// Initial setup
for(int i = 0; i < 142; i++)
{
m_StripReference_1.setPixelColor(i, m_StripReference_1.Color(10, 0, 0, 0));
}
m_StripReference_1.show();
m_StripReference_1.setPixelColor(143, m_StripReference_1.Color(0, 10, 0, 0));
m_StripReference_1.show();
m_StripReference_2.setPixelColor(0, m_StripReference_2.Color(0, 10, 0, 0));
m_StripReference_2.show();
for(int i = 1; i < 143; i++)
{
m_StripReference_2.setPixelColor(i, m_StripReference_2.Color(0, 0, 10, 0));
}
m_StripReference_2.show();
delay(1000);
// Turning Channel 1 off
for(int i = 0; i < 142; i++)
{
m_StripReference_1.setPixelColor(i, m_StripReference_1.Color(0, 0, 0, 0));
m_StripReference_1.show();
delay(100);
}
// Turning Channel 1 on
for(int i = 0; i < 142; i++)
{
m_StripReference_1.setPixelColor(i, m_StripReference_1.Color(10, 0, 0, 0));
m_StripReference_1.show();
delay(100);
}
// Turning Channel 2 off
m_StripReference_1.setPixelColor(143, m_StripReference_1.Color(0, 0, 0, 0));
m_StripReference_1.show();
delay(250);
m_StripReference_2.setPixelColor(0, m_StripReference_2.Color(0, 0, 0, 0));
m_StripReference_2.show();
delay(250);
// Turning Channel 2 on
m_StripReference_1.setPixelColor(143, m_StripReference_1.Color(0, 10, 0, 0));
m_StripReference_1.show();
delay(500);
m_StripReference_2.setPixelColor(0, m_StripReference_2.Color(0, 10, 0, 0));
m_StripReference_2.show();
delay(500);
// Turning Channel 3 off
for(int i = 1; i < 143; i++)
{
m_StripReference_2.setPixelColor(i, m_StripReference_2.Color(0, 0, 0, 0));
m_StripReference_2.show();
delay(100);
}
// Turning Channel 3 on
for(int i = 1; i < 143; i++)
{
m_StripReference_2.setPixelColor(i, m_StripReference_2.Color(0, 0, 10, 0));
m_StripReference_2.show();
delay(100);
}
Serial.println("Memory Free:");
//Serial.println(freeMemory());
}
void loop() {
// put your main code here, to run repeatedly:
}