drukun
August 21, 2020, 7:18pm
1
Hello all,
Im trying to make some code for a game im designing. Its a fairly simple idea, where at the beginning of the game, a ring of leds lights up, and you hit that target. Once you hit that, a new one is selected, etc etc.
Im primarily using a Mega2560, and intend to have 9 targets, each with a 16 pixel ring led. I was using FastLED and the Button librarys in the code coming up.
It seems like the game will function, but right now ALL the inputs trigger in order and constantly loop hitting eachother, according to the serial monitor.
I know the code below is clunky and can be refined, but i am just starting out.
Any advice on how to fix this? Did i miss something simple?
Thanks in advance!
#include <Button.h>
#include <FastLED.h>
#define LED_PIN 6
//#define CLOCK_PIN 4
#define NUM_LEDS 144
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
#define BRIGHTNESS 64
CRGB leds[NUM_LEDS];
Button button1(2); // Connect your button between pin 2 and GND
Button button2(3); // Connect your button between pin 3 and GND
Button button3(4); // Connect your button between pin 4 and GND
Button button4(5); // Connect your button between pin 5 and GND
Button button5(6); // Connect your button between pin 6 and GND
Button button6(7); // Connect your button between pin 7 and GND
Button button7(8); // Connect your button between pin 8 and GND
Button button8(9); // Connect your button between pin 9 and GND
Button button9(10);
void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
while (!Serial) { }; // for Leos
Serial.begin(9600);
}
void loop() {
button1.begin();
FastLED.clear();
leds[1] = CRGB::Green;
leds[2]= CRGB::Green;
leds[3]= CRGB::Green;
leds[4]= CRGB::Green;
leds[5]= CRGB::Green;
leds[6]= CRGB::Green;
leds[7]= CRGB::Green;
leds[8]= CRGB::Green;
leds[9]= CRGB::Green;
leds[10]= CRGB::Green;
leds[11]= CRGB::Green;
leds[12]= CRGB::Green;
leds[13]= CRGB::Green;
leds[14]= CRGB::Green;
leds[15]= CRGB::Green;
leds[16]= CRGB::Green;
FastLED.show();
Serial.println ("one");
if (button1.pressed());
button2.begin();
FastLED.clear();
leds[17]= CRGB::Green;
leds[18]= CRGB::Green;
leds[19]= CRGB::Green;
leds[20]= CRGB::Green;
leds[21]= CRGB::Green;
leds[22]= CRGB::Green;
leds[23]= CRGB::Green;
leds[24]= CRGB::Green;
leds[25]= CRGB::Green;
leds[26]= CRGB::Green;
leds[27]= CRGB::Green;
leds[28]= CRGB::Green;
leds[29]= CRGB::Green;
leds[30]= CRGB::Green;
leds[31]= CRGB::Green;
leds[32]= CRGB::Green;
FastLED.show();
Serial.println ("two");
if (button2.pressed());
button3.begin();
FastLED.clear();
leds[33]= CRGB::Green;
leds[34]= CRGB::Green;
leds[35]= CRGB::Green;
leds[36]= CRGB::Green;
leds[37]= CRGB::Green;
leds[38]= CRGB::Green;
leds[39]= CRGB::Green;
leds[40]= CRGB::Green;
leds[41]= CRGB::Green;
leds[42]= CRGB::Green;
leds[43]= CRGB::Green;
leds[44]= CRGB::Green;
leds[45]= CRGB::Green;
leds[46]= CRGB::Green;
leds[47]= CRGB::Green;
leds[48]= CRGB::Green;
FastLED.show();
Serial.println ("three");
if (button3.pressed());
button4.begin();
FastLED.clear();
leds[49]= CRGB::Green;
leds[50]= CRGB::Green;
leds[51]= CRGB::Green;
leds[52]= CRGB::Green;
leds[53]= CRGB::Green;
leds[54]= CRGB::Green;
leds[55]= CRGB::Green;
leds[56]= CRGB::Green;
leds[57]= CRGB::Green;
leds[58]= CRGB::Green;
leds[59]= CRGB::Green;
leds[60]= CRGB::Green;
leds[61]= CRGB::Green;
leds[62]= CRGB::Green;
leds[63]= CRGB::Green;
leds[64]= CRGB::Green;
FastLED.show();
Serial.println ("three");
if (button4.pressed());
button5.begin();
FastLED.clear();
leds[65]= CRGB::Green;
leds[66]= CRGB::Green;
leds[67]= CRGB::Green;
leds[68]= CRGB::Green;
leds[69]= CRGB::Green;
leds[70]= CRGB::Green;
leds[70]= CRGB::Green;
leds[72]= CRGB::Green;
leds[73]= CRGB::Green;
leds[74]= CRGB::Green;
leds[75]= CRGB::Green;
leds[76]= CRGB::Green;
leds[77]= CRGB::Green;
leds[78]= CRGB::Green;
leds[79]= CRGB::Green;
leds[80]= CRGB::Green;
FastLED.show();
Serial.println ("four");
if (button5.pressed());
button6.begin();
FastLED.clear();
leds[81]= CRGB::Green;
leds[82]= CRGB::Green;
leds[83]= CRGB::Green;
leds[84]= CRGB::Green;
leds[85]= CRGB::Green;
leds[86]= CRGB::Green;
leds[87]= CRGB::Green;
leds[88]= CRGB::Green;
leds[89]= CRGB::Green;
leds[90]= CRGB::Green;
leds[91]= CRGB::Green;
leds[92]= CRGB::Green;
leds[93]= CRGB::Green;
leds[94]= CRGB::Green;
leds[95]= CRGB::Green;
leds[96]= CRGB::Green;
FastLED.show();
Serial.println ("five");
if (button6.pressed());
button7.begin();
FastLED.clear();
leds[97]= CRGB::Green;
leds[98]= CRGB::Green;
leds[99]= CRGB::Green;
leds[100]= CRGB::Green;
leds[101]= CRGB::Green;
leds[102]= CRGB::Green;
leds[103]= CRGB::Green;
leds[104]= CRGB::Green;
leds[105]= CRGB::Green;
leds[106]= CRGB::Green;
leds[107]= CRGB::Green;
leds[108]= CRGB::Green;
leds[109]= CRGB::Green;
leds[110]= CRGB::Green;
leds[111]= CRGB::Green;
leds[112]= CRGB::Green;
FastLED.show();
Serial.println ("six");
if (button7.pressed());
button8.begin();
FastLED.clear();
leds[113]= CRGB::Green;
leds[114]= CRGB::Green;
leds[115]= CRGB::Green;
leds[116]= CRGB::Green;
leds[117]= CRGB::Green;
leds[118]= CRGB::Green;
leds[119]= CRGB::Green;
leds[120]= CRGB::Green;
leds[121]= CRGB::Green;
leds[122]= CRGB::Green;
leds[123]= CRGB::Green;
leds[124]= CRGB::Green;
leds[125]= CRGB::Green;
leds[126]= CRGB::Green;
leds[127]= CRGB::Green;
leds[128]= CRGB::Green;
FastLED.show();
Serial.println ("seven");
if (button8.pressed());
button9.begin();
FastLED.clear();
leds[129]= CRGB::Green;
leds[130]= CRGB::Green;
leds[115]= CRGB::Green;
leds[131]= CRGB::Green;
leds[132]= CRGB::Green;
leds[133]= CRGB::Green;
leds[134]= CRGB::Green;
leds[135]= CRGB::Green;
leds[136]= CRGB::Green;
leds[137]= CRGB::Green;
leds[138]= CRGB::Green;
leds[139]= CRGB::Green;
leds[140]= CRGB::Green;
leds[141]= CRGB::Green;
leds[142]= CRGB::Green;
leds[143]= CRGB::Green;
FastLED.show();
Serial.println ("eight");
if (button9.pressed());
FastLED.clear();
leds[1] = CRGB::Green;
leds[2]= CRGB::Green;
leds[3]= CRGB::Green;
leds[4]= CRGB::Green;
leds[5]= CRGB::Green;
leds[6]= CRGB::Green;
leds[7]= CRGB::Green;
leds[8]= CRGB::Green;
leds[9]= CRGB::Green;
leds[10]= CRGB::Green;
leds[11]= CRGB::Green;
leds[12]= CRGB::Green;
leds[13]= CRGB::Green;
leds[14]= CRGB::Green;
leds[15]= CRGB::Green;
leds[16]= CRGB::Green;
FastLED.show();
Serial.println ("nine");
}
You should be calling the begin() for your buttons in the setup function.
This line of code does nothing because you have a semicolon after it:
if (button1.pressed());
drukun
August 21, 2020, 7:38pm
3
ToddL1962:
You should be calling the begin() for your buttons in the setup function.
This line of code does nothing because you have a semicolon after it:
if (button1.pressed());
Thanks for the fast response!
I removed the semi colons from all the (button.pressed()) functions, and moved the begin();, but now the LEDs are not turning on, and when i hit an input, according to serial monitor, they are all triggering in order again.
I've now, to be sure, swapped shields, did it without the shield, and swapped arduinos to make sure it wasnt a hardware issue.
drukun:
Thanks for the fast response!
I removed the semi colons from all the (button.pressed()) functions, and moved the begin();, but now the LEDs are not turning on, and when i hit an input, according to serial monitor, they are all triggering in order again.
I've now, to be sure, swapped shields, did it without the shield, and swapped arduinos to make sure it wasnt a hardware issue.
Post your changed code. Also, it is not clear to me how this code is supposed to function. What is supposed to happen when you hit a particular button?
drukun
August 21, 2020, 7:53pm
5
Apologies for the confusion.
When the arduino powers on, LEDs 1-16 turn green. Once input 1 is triggered, those LEDs shut off, and 17-32 power on. Once input 2 is triggered, those shut off and 33-48 power on, etc etc. Once you hit input 9 it should loop back to input one.
Its a sequential button pressing game, where each time you trigger the previous input, the next input in line lights up.
Thanks!
#include <Button.h>
#include <FastLED.h>
#define LED_PIN 6
//#define CLOCK_PIN 4
#define NUM_LEDS 144
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
#define BRIGHTNESS 64
CRGB leds[NUM_LEDS];
Button button1(2); // Connect your button between pin 2 and GND
Button button2(3); // Connect your button between pin 3 and GND
Button button3(4); // Connect your button between pin 4 and GND
Button button4(5); // Connect your button between pin 5 and GND
Button button5(6); // Connect your button between pin 6 and GND
Button button6(7); // Connect your button between pin 7 and GND
Button button7(8); // Connect your button between pin 8 and GND
Button button8(9); // Connect your button between pin 9 and GND
Button button9(10);
void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
while (!Serial) { }; // for Leos
Serial.begin(9600);
button1.begin();
button2.begin();
button3.begin();
button4.begin();
button5.begin();
button6.begin();
button7.begin();
button8.begin();
button9.begin();
}
void loop() {
FastLED.clear();
leds[1] = CRGB::Green;
leds[2]= CRGB::Green;
leds[3]= CRGB::Green;
leds[4]= CRGB::Green;
leds[5]= CRGB::Green;
leds[6]= CRGB::Green;
leds[7]= CRGB::Green;
leds[8]= CRGB::Green;
leds[9]= CRGB::Green;
leds[10]= CRGB::Green;
leds[11]= CRGB::Green;
leds[12]= CRGB::Green;
leds[13]= CRGB::Green;
leds[14]= CRGB::Green;
leds[15]= CRGB::Green;
leds[16]= CRGB::Green;
FastLED.show();
if (button1.pressed())
FastLED.clear();
leds[17]= CRGB::Green;
leds[18]= CRGB::Green;
leds[19]= CRGB::Green;
leds[20]= CRGB::Green;
leds[21]= CRGB::Green;
leds[22]= CRGB::Green;
leds[23]= CRGB::Green;
leds[24]= CRGB::Green;
leds[25]= CRGB::Green;
leds[26]= CRGB::Green;
leds[27]= CRGB::Green;
leds[28]= CRGB::Green;
leds[29]= CRGB::Green;
leds[30]= CRGB::Green;
leds[31]= CRGB::Green;
leds[32]= CRGB::Green;
FastLED.show();
Serial.println ("one");
if (button2.pressed())
FastLED.clear();
leds[33]= CRGB::Green;
leds[34]= CRGB::Green;
leds[35]= CRGB::Green;
leds[36]= CRGB::Green;
leds[37]= CRGB::Green;
leds[38]= CRGB::Green;
leds[39]= CRGB::Green;
leds[40]= CRGB::Green;
leds[41]= CRGB::Green;
leds[42]= CRGB::Green;
leds[43]= CRGB::Green;
leds[44]= CRGB::Green;
leds[45]= CRGB::Green;
leds[46]= CRGB::Green;
leds[47]= CRGB::Green;
leds[48]= CRGB::Green;
FastLED.show();
Serial.println ("two");
if (button3.pressed())
FastLED.clear();
leds[49]= CRGB::Green;
leds[50]= CRGB::Green;
leds[51]= CRGB::Green;
leds[52]= CRGB::Green;
leds[53]= CRGB::Green;
leds[54]= CRGB::Green;
leds[55]= CRGB::Green;
leds[56]= CRGB::Green;
leds[57]= CRGB::Green;
leds[58]= CRGB::Green;
leds[59]= CRGB::Green;
leds[60]= CRGB::Green;
leds[61]= CRGB::Green;
leds[62]= CRGB::Green;
leds[63]= CRGB::Green;
leds[64]= CRGB::Green;
FastLED.show();
Serial.println ("three");
if (button4.pressed())
FastLED.clear();
leds[65]= CRGB::Green;
leds[66]= CRGB::Green;
leds[67]= CRGB::Green;
leds[68]= CRGB::Green;
leds[69]= CRGB::Green;
leds[70]= CRGB::Green;
leds[70]= CRGB::Green;
leds[72]= CRGB::Green;
leds[73]= CRGB::Green;
leds[74]= CRGB::Green;
leds[75]= CRGB::Green;
leds[76]= CRGB::Green;
leds[77]= CRGB::Green;
leds[78]= CRGB::Green;
leds[79]= CRGB::Green;
leds[80]= CRGB::Green;
FastLED.show();
Serial.println ("four");
if (button5.pressed())
FastLED.clear();
leds[81]= CRGB::Green;
leds[82]= CRGB::Green;
leds[83]= CRGB::Green;
leds[84]= CRGB::Green;
leds[85]= CRGB::Green;
leds[86]= CRGB::Green;
leds[87]= CRGB::Green;
leds[88]= CRGB::Green;
leds[89]= CRGB::Green;
leds[90]= CRGB::Green;
leds[91]= CRGB::Green;
leds[92]= CRGB::Green;
leds[93]= CRGB::Green;
leds[94]= CRGB::Green;
leds[95]= CRGB::Green;
leds[96]= CRGB::Green;
FastLED.show();
Serial.println ("five");
if (button6.pressed())
FastLED.clear();
leds[97]= CRGB::Green;
leds[98]= CRGB::Green;
leds[99]= CRGB::Green;
leds[100]= CRGB::Green;
leds[101]= CRGB::Green;
leds[102]= CRGB::Green;
leds[103]= CRGB::Green;
leds[104]= CRGB::Green;
leds[105]= CRGB::Green;
leds[106]= CRGB::Green;
leds[107]= CRGB::Green;
leds[108]= CRGB::Green;
leds[109]= CRGB::Green;
leds[110]= CRGB::Green;
leds[111]= CRGB::Green;
leds[112]= CRGB::Green;
FastLED.show();
Serial.println ("six");
if (button7.pressed())
FastLED.clear();
leds[113]= CRGB::Green;
leds[114]= CRGB::Green;
leds[115]= CRGB::Green;
leds[116]= CRGB::Green;
leds[117]= CRGB::Green;
leds[118]= CRGB::Green;
leds[119]= CRGB::Green;
leds[120]= CRGB::Green;
leds[121]= CRGB::Green;
leds[122]= CRGB::Green;
leds[123]= CRGB::Green;
leds[124]= CRGB::Green;
leds[125]= CRGB::Green;
leds[126]= CRGB::Green;
leds[127]= CRGB::Green;
leds[128]= CRGB::Green;
FastLED.show();
Serial.println ("seven");
if (button8.pressed())
FastLED.clear();
leds[129]= CRGB::Green;
leds[130]= CRGB::Green;
leds[115]= CRGB::Green;
leds[131]= CRGB::Green;
leds[132]= CRGB::Green;
leds[133]= CRGB::Green;
leds[134]= CRGB::Green;
leds[135]= CRGB::Green;
leds[136]= CRGB::Green;
leds[137]= CRGB::Green;
leds[138]= CRGB::Green;
leds[139]= CRGB::Green;
leds[140]= CRGB::Green;
leds[141]= CRGB::Green;
leds[142]= CRGB::Green;
leds[143]= CRGB::Green;
FastLED.show();
Serial.println ("eight");
if (button9.pressed())
FastLED.clear();
leds[1] = CRGB::Green;
leds[2]= CRGB::Green;
leds[3]= CRGB::Green;
leds[4]= CRGB::Green;
leds[5]= CRGB::Green;
leds[6]= CRGB::Green;
leds[7]= CRGB::Green;
leds[8]= CRGB::Green;
leds[9]= CRGB::Green;
leds[10]= CRGB::Green;
leds[11]= CRGB::Green;
leds[12]= CRGB::Green;
leds[13]= CRGB::Green;
leds[14]= CRGB::Green;
leds[15]= CRGB::Green;
leds[16]= CRGB::Green;
FastLED.show();
Serial.println ("nine");
}
See if this works. I can't test it for you:
#include <Button.h>
#include <FastLED.h>
#define LED_PIN 6
//#define CLOCK_PIN 4
#define NUM_LEDS 144
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
#define BRIGHTNESS 64
CRGB leds[NUM_LEDS];
Button button1(2); // Connect your button between pin 2 and GND
Button button2(3); // Connect your button between pin 3 and GND
Button button3(4); // Connect your button between pin 4 and GND
Button button4(5); // Connect your button between pin 5 and GND
Button button5(6); // Connect your button between pin 6 and GND
Button button6(7); // Connect your button between pin 7 and GND
Button button7(8); // Connect your button between pin 8 and GND
Button button8(9); // Connect your button between pin 9 and GND
Button button9(10);
void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
while (!Serial) { }; // for Leos
Serial.begin(9600);
button1.begin();
button2.begin();
button3.begin();
button4.begin();
button5.begin();
button6.begin();
button7.begin();
button8.begin();
button9.begin();
FastLED.clear();
leds[1] = CRGB::Green;
leds[2] = CRGB::Green;
leds[3] = CRGB::Green;
leds[4] = CRGB::Green;
leds[5] = CRGB::Green;
leds[6] = CRGB::Green;
leds[7] = CRGB::Green;
leds[8] = CRGB::Green;
leds[9] = CRGB::Green;
leds[10] = CRGB::Green;
leds[11] = CRGB::Green;
leds[12] = CRGB::Green;
leds[13] = CRGB::Green;
leds[14] = CRGB::Green;
leds[15] = CRGB::Green;
leds[16] = CRGB::Green;
FastLED.show();
}
void loop() {
if (button1.pressed())
{
FastLED.clear();
leds[17] = CRGB::Green;
leds[18] = CRGB::Green;
leds[19] = CRGB::Green;
leds[20] = CRGB::Green;
leds[21] = CRGB::Green;
leds[22] = CRGB::Green;
leds[23] = CRGB::Green;
leds[24] = CRGB::Green;
leds[25] = CRGB::Green;
leds[26] = CRGB::Green;
leds[27] = CRGB::Green;
leds[28] = CRGB::Green;
leds[29] = CRGB::Green;
leds[30] = CRGB::Green;
leds[31] = CRGB::Green;
leds[32] = CRGB::Green;
FastLED.show();
Serial.println ("one");
}
if (button2.pressed())
{
FastLED.clear();
leds[33] = CRGB::Green;
leds[34] = CRGB::Green;
leds[35] = CRGB::Green;
leds[36] = CRGB::Green;
leds[37] = CRGB::Green;
leds[38] = CRGB::Green;
leds[39] = CRGB::Green;
leds[40] = CRGB::Green;
leds[41] = CRGB::Green;
leds[42] = CRGB::Green;
leds[43] = CRGB::Green;
leds[44] = CRGB::Green;
leds[45] = CRGB::Green;
leds[46] = CRGB::Green;
leds[47] = CRGB::Green;
leds[48] = CRGB::Green;
FastLED.show();
Serial.println ("two");
}
if (button3.pressed())
{
FastLED.clear();
leds[49] = CRGB::Green;
leds[50] = CRGB::Green;
leds[51] = CRGB::Green;
leds[52] = CRGB::Green;
leds[53] = CRGB::Green;
leds[54] = CRGB::Green;
leds[55] = CRGB::Green;
leds[56] = CRGB::Green;
leds[57] = CRGB::Green;
leds[58] = CRGB::Green;
leds[59] = CRGB::Green;
leds[60] = CRGB::Green;
leds[61] = CRGB::Green;
leds[62] = CRGB::Green;
leds[63] = CRGB::Green;
leds[64] = CRGB::Green;
FastLED.show();
Serial.println ("three");
}
if (button4.pressed())
{
FastLED.clear();
leds[65] = CRGB::Green;
leds[66] = CRGB::Green;
leds[67] = CRGB::Green;
leds[68] = CRGB::Green;
leds[69] = CRGB::Green;
leds[70] = CRGB::Green;
leds[70] = CRGB::Green;
leds[72] = CRGB::Green;
leds[73] = CRGB::Green;
leds[74] = CRGB::Green;
leds[75] = CRGB::Green;
leds[76] = CRGB::Green;
leds[77] = CRGB::Green;
leds[78] = CRGB::Green;
leds[79] = CRGB::Green;
leds[80] = CRGB::Green;
FastLED.show();
Serial.println ("four");
}
if (button5.pressed())
{
FastLED.clear();
leds[81] = CRGB::Green;
leds[82] = CRGB::Green;
leds[83] = CRGB::Green;
leds[84] = CRGB::Green;
leds[85] = CRGB::Green;
leds[86] = CRGB::Green;
leds[87] = CRGB::Green;
leds[88] = CRGB::Green;
leds[89] = CRGB::Green;
leds[90] = CRGB::Green;
leds[91] = CRGB::Green;
leds[92] = CRGB::Green;
leds[93] = CRGB::Green;
leds[94] = CRGB::Green;
leds[95] = CRGB::Green;
leds[96] = CRGB::Green;
FastLED.show();
Serial.println ("five");
}
if (button6.pressed())
{
FastLED.clear();
leds[97] = CRGB::Green;
leds[98] = CRGB::Green;
leds[99] = CRGB::Green;
leds[100] = CRGB::Green;
leds[101] = CRGB::Green;
leds[102] = CRGB::Green;
leds[103] = CRGB::Green;
leds[104] = CRGB::Green;
leds[105] = CRGB::Green;
leds[106] = CRGB::Green;
leds[107] = CRGB::Green;
leds[108] = CRGB::Green;
leds[109] = CRGB::Green;
leds[110] = CRGB::Green;
leds[111] = CRGB::Green;
leds[112] = CRGB::Green;
FastLED.show();
Serial.println ("six");
}
if (button7.pressed())
{
FastLED.clear();
leds[113] = CRGB::Green;
leds[114] = CRGB::Green;
leds[115] = CRGB::Green;
leds[116] = CRGB::Green;
leds[117] = CRGB::Green;
leds[118] = CRGB::Green;
leds[119] = CRGB::Green;
leds[120] = CRGB::Green;
leds[121] = CRGB::Green;
leds[122] = CRGB::Green;
leds[123] = CRGB::Green;
leds[124] = CRGB::Green;
leds[125] = CRGB::Green;
leds[126] = CRGB::Green;
leds[127] = CRGB::Green;
leds[128] = CRGB::Green;
FastLED.show();
Serial.println ("seven");
}
if (button8.pressed())
{
FastLED.clear();
leds[129] = CRGB::Green;
leds[130] = CRGB::Green;
leds[115] = CRGB::Green;
leds[131] = CRGB::Green;
leds[132] = CRGB::Green;
leds[133] = CRGB::Green;
leds[134] = CRGB::Green;
leds[135] = CRGB::Green;
leds[136] = CRGB::Green;
leds[137] = CRGB::Green;
leds[138] = CRGB::Green;
leds[139] = CRGB::Green;
leds[140] = CRGB::Green;
leds[141] = CRGB::Green;
leds[142] = CRGB::Green;
leds[143] = CRGB::Green;
FastLED.show();
Serial.println ("eight");
}
if (button9.pressed())
{
FastLED.clear();
leds[1] = CRGB::Green;
leds[2] = CRGB::Green;
leds[3] = CRGB::Green;
leds[4] = CRGB::Green;
leds[5] = CRGB::Green;
leds[6] = CRGB::Green;
leds[7] = CRGB::Green;
leds[8] = CRGB::Green;
leds[9] = CRGB::Green;
leds[10] = CRGB::Green;
leds[11] = CRGB::Green;
leds[12] = CRGB::Green;
leds[13] = CRGB::Green;
leds[14] = CRGB::Green;
leds[15] = CRGB::Green;
leds[16] = CRGB::Green;
FastLED.show();
Serial.println ("nine");
}
}
drukun
August 21, 2020, 8:35pm
8
ToddL1962:
See if this works. I can't test it for you:
#include <Button.h>
#include <FastLED.h>
#define LED_PIN 6
//#define CLOCK_PIN 4
#define NUM_LEDS 144
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
#define BRIGHTNESS 64
CRGB leds[NUM_LEDS];
Button button1(2); // Connect your button between pin 2 and GND
Button button2(3); // Connect your button between pin 3 and GND
Button button3(4); // Connect your button between pin 4 and GND
Button button4(5); // Connect your button between pin 5 and GND
Button button5(6); // Connect your button between pin 6 and GND
Button button6(7); // Connect your button between pin 7 and GND
Button button7(8); // Connect your button between pin 8 and GND
Button button8(9); // Connect your button between pin 9 and GND
Button button9(10);
void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
while (!Serial) { }; // for Leos
Serial.begin(9600);
button1.begin();
button2.begin();
button3.begin();
button4.begin();
button5.begin();
button6.begin();
button7.begin();
button8.begin();
button9.begin();
FastLED.clear();
leds[1] = CRGB::Green;
leds[2] = CRGB::Green;
leds[3] = CRGB::Green;
leds[4] = CRGB::Green;
leds[5] = CRGB::Green;
leds[6] = CRGB::Green;
leds[7] = CRGB::Green;
leds[8] = CRGB::Green;
leds[9] = CRGB::Green;
leds[10] = CRGB::Green;
leds[11] = CRGB::Green;
leds[12] = CRGB::Green;
leds[13] = CRGB::Green;
leds[14] = CRGB::Green;
leds[15] = CRGB::Green;
leds[16] = CRGB::Green;
FastLED.show();
}
void loop() {
if (button1.pressed())
{
FastLED.clear();
leds[17] = CRGB::Green;
leds[18] = CRGB::Green;
leds[19] = CRGB::Green;
leds[20] = CRGB::Green;
leds[21] = CRGB::Green;
leds[22] = CRGB::Green;
leds[23] = CRGB::Green;
leds[24] = CRGB::Green;
leds[25] = CRGB::Green;
leds[26] = CRGB::Green;
leds[27] = CRGB::Green;
leds[28] = CRGB::Green;
leds[29] = CRGB::Green;
leds[30] = CRGB::Green;
leds[31] = CRGB::Green;
leds[32] = CRGB::Green;
FastLED.show();
Serial.println ("one");
}
if (button2.pressed())
{
FastLED.clear();
leds[33] = CRGB::Green;
leds[34] = CRGB::Green;
leds[35] = CRGB::Green;
leds[36] = CRGB::Green;
leds[37] = CRGB::Green;
leds[38] = CRGB::Green;
leds[39] = CRGB::Green;
leds[40] = CRGB::Green;
leds[41] = CRGB::Green;
leds[42] = CRGB::Green;
leds[43] = CRGB::Green;
leds[44] = CRGB::Green;
leds[45] = CRGB::Green;
leds[46] = CRGB::Green;
leds[47] = CRGB::Green;
leds[48] = CRGB::Green;
FastLED.show();
Serial.println ("two");
}
if (button3.pressed())
{
FastLED.clear();
leds[49] = CRGB::Green;
leds[50] = CRGB::Green;
leds[51] = CRGB::Green;
leds[52] = CRGB::Green;
leds[53] = CRGB::Green;
leds[54] = CRGB::Green;
leds[55] = CRGB::Green;
leds[56] = CRGB::Green;
leds[57] = CRGB::Green;
leds[58] = CRGB::Green;
leds[59] = CRGB::Green;
leds[60] = CRGB::Green;
leds[61] = CRGB::Green;
leds[62] = CRGB::Green;
leds[63] = CRGB::Green;
leds[64] = CRGB::Green;
FastLED.show();
Serial.println ("three");
}
if (button4.pressed())
{
FastLED.clear();
leds[65] = CRGB::Green;
leds[66] = CRGB::Green;
leds[67] = CRGB::Green;
leds[68] = CRGB::Green;
leds[69] = CRGB::Green;
leds[70] = CRGB::Green;
leds[70] = CRGB::Green;
leds[72] = CRGB::Green;
leds[73] = CRGB::Green;
leds[74] = CRGB::Green;
leds[75] = CRGB::Green;
leds[76] = CRGB::Green;
leds[77] = CRGB::Green;
leds[78] = CRGB::Green;
leds[79] = CRGB::Green;
leds[80] = CRGB::Green;
FastLED.show();
Serial.println ("four");
}
if (button5.pressed())
{
FastLED.clear();
leds[81] = CRGB::Green;
leds[82] = CRGB::Green;
leds[83] = CRGB::Green;
leds[84] = CRGB::Green;
leds[85] = CRGB::Green;
leds[86] = CRGB::Green;
leds[87] = CRGB::Green;
leds[88] = CRGB::Green;
leds[89] = CRGB::Green;
leds[90] = CRGB::Green;
leds[91] = CRGB::Green;
leds[92] = CRGB::Green;
leds[93] = CRGB::Green;
leds[94] = CRGB::Green;
leds[95] = CRGB::Green;
leds[96] = CRGB::Green;
FastLED.show();
Serial.println ("five");
}
if (button6.pressed())
{
FastLED.clear();
leds[97] = CRGB::Green;
leds[98] = CRGB::Green;
leds[99] = CRGB::Green;
leds[100] = CRGB::Green;
leds[101] = CRGB::Green;
leds[102] = CRGB::Green;
leds[103] = CRGB::Green;
leds[104] = CRGB::Green;
leds[105] = CRGB::Green;
leds[106] = CRGB::Green;
leds[107] = CRGB::Green;
leds[108] = CRGB::Green;
leds[109] = CRGB::Green;
leds[110] = CRGB::Green;
leds[111] = CRGB::Green;
leds[112] = CRGB::Green;
FastLED.show();
Serial.println ("six");
}
if (button7.pressed())
{
FastLED.clear();
leds[113] = CRGB::Green;
leds[114] = CRGB::Green;
leds[115] = CRGB::Green;
leds[116] = CRGB::Green;
leds[117] = CRGB::Green;
leds[118] = CRGB::Green;
leds[119] = CRGB::Green;
leds[120] = CRGB::Green;
leds[121] = CRGB::Green;
leds[122] = CRGB::Green;
leds[123] = CRGB::Green;
leds[124] = CRGB::Green;
leds[125] = CRGB::Green;
leds[126] = CRGB::Green;
leds[127] = CRGB::Green;
leds[128] = CRGB::Green;
FastLED.show();
Serial.println ("seven");
}
if (button8.pressed())
{
FastLED.clear();
leds[129] = CRGB::Green;
leds[130] = CRGB::Green;
leds[115] = CRGB::Green;
leds[131] = CRGB::Green;
leds[132] = CRGB::Green;
leds[133] = CRGB::Green;
leds[134] = CRGB::Green;
leds[135] = CRGB::Green;
leds[136] = CRGB::Green;
leds[137] = CRGB::Green;
leds[138] = CRGB::Green;
leds[139] = CRGB::Green;
leds[140] = CRGB::Green;
leds[141] = CRGB::Green;
leds[142] = CRGB::Green;
leds[143] = CRGB::Green;
FastLED.show();
Serial.println ("eight");
}
if (button9.pressed())
{
FastLED.clear();
leds[1] = CRGB::Green;
leds[2] = CRGB::Green;
leds[3] = CRGB::Green;
leds[4] = CRGB::Green;
leds[5] = CRGB::Green;
leds[6] = CRGB::Green;
leds[7] = CRGB::Green;
leds[8] = CRGB::Green;
leds[9] = CRGB::Green;
leds[10] = CRGB::Green;
leds[11] = CRGB::Green;
leds[12] = CRGB::Green;
leds[13] = CRGB::Green;
leds[14] = CRGB::Green;
leds[15] = CRGB::Green;
leds[16] = CRGB::Green;
FastLED.show();
Serial.println ("nine");
}
}
That works much better than mine. I now see that i was missing the {} for the button presses to make that action work together. Unfortunately the LEDs still arent turning on, but its a lot more progress than i had!
Thank you!
Would removing the FastLED.clear(); and just manual turning each led off using CRGB::Black be more efficent? Or should the clear still do the trick?
The first set of LEDs should at least light up. Must be something else wrong with that. I haven't used the FastLED library myself so I'm afraid I can't help with that. Comment everything out of loop() and make sure the first 16 LEDs light up. If they don't you may have a wiring issue.
JCA34F
August 21, 2020, 11:33pm
10
If you don't have pullup resistors on your button pins, try this in setup():
for(int i = 2; i <= 10;i++)
pinMode(i,INPUT_PULLUP);