// For: https://forum.arduino.cc/t/neo-pixel-with-using-multiple-inputs-output-logic/1047809/
// This Wokwi project: https://wokwi.com/projects/347018670462992980
//
// There are two options:
// 1. Use one pin for Neopixels and concatenate all Neopixel rings
// 2. Use four pins for the four separate Neopixel rings.
// Both options are good.
// I used the second option, but did not put them in an array (yet).
//
// nov 1, 2022, updated to 12 pixels per ring
//
#include <Adafruit_NeoPixel.h>
const byte Input1_Pin = 12;
const byte Input2_Pin = 13;
#define PIN1 2 //Neo Pixel Ring 1
#define PIN2 3 //Neo Pixel Ring 2
#define PIN3 4 //Neo Pixel Ring 3
#define PIN4 5 //Neo Pixel Ring 4
#define NUMPIXELS 12
Adafruit_NeoPixel pixels1(NUMPIXELS, PIN1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2(NUMPIXELS, PIN2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels3(NUMPIXELS, PIN3, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels4(NUMPIXELS, PIN4, NEO_GRB + NEO_KHZ800);
int colorWalkRed;
int colorWalkGreen;
int colorWalkBlue;
void setup()
{
// Serial.begin(115200);
// Serial.println( "The sketch has started");
pinMode(Input1_Pin, INPUT);
pinMode(Input2_Pin, INPUT);
pixels1.begin();
pixels2.begin();
pixels3.begin();
pixels4.begin();
pixels1.show();
pixels2.show();
pixels3.show();
pixels4.show();
colorWalkRed = random( 0, 256);
colorWalkGreen = random( 0, 256);
colorWalkBlue = random( 0, 256);
}
void loop()
{
pixels1.fill(pixels1.Color(colorWalkRed, colorWalkGreen, colorWalkBlue), 0, NUMPIXELS);
pixels1.show();
AdvanceColorWalk();
delay(100);
pixels2.fill(pixels2.Color(colorWalkRed, colorWalkGreen, colorWalkBlue), 0, NUMPIXELS);
pixels2.show();
AdvanceColorWalk();
delay(100);
pixels3.fill(pixels3.Color(colorWalkRed, colorWalkGreen, colorWalkBlue), 0, NUMPIXELS);
pixels3.show();
AdvanceColorWalk();
delay(100);
pixels4.fill(pixels4.Color(colorWalkRed, colorWalkGreen, colorWalkBlue), 0, NUMPIXELS);
pixels4.show();
AdvanceColorWalk();
delay(100);
}
void AdvanceColorWalk()
{
colorWalkRed += random(0,20);
if( colorWalkRed > 255)
colorWalkRed -= 255;
colorWalkGreen += random(0,20);
if( colorWalkGreen > 255)
colorWalkGreen -= 255;
colorWalkBlue += random(0,20);
if( colorWalkBlue > 255)
colorWalkBlue -= 255;
}FPS: 0
Power: 0.00W
Power: 0.00W