Currently I am working on my 4x4x4 led cube, I wanted to write my own code for it but currently I am stuck on using 3D arrays. I declare several arrays in void setup(), and I have tried putting them in the void loop() as well. Still, when trying to compile it keeps returning errors.
In short, the code is supposed to generate a random point with a XYZ value. Then it has to write it to an buffer, this buffer has to project and multiplex it onto the led cube.
I made the lines that return the errors bold.
The errors are:
LedCube1.0.ino: In function 'void loop()':
LedCube1.0.ino:41:3: error: 'ledBuffer' was not declared in this scope
LedCube1.0.ino:41:13: error: 'xSeed' was not declared in this scope
LedCube1.0.ino:41:20: error: 'ySeed' was not declared in this scope
LedCube1.0.ino:41:27: error: 'zSeed' was not declared in this scope
LedCube1.0.ino:42:7: error: 'rainstep' was not declared in this scope
LedCube1.0.ino: In function 'int allOff()':
LedCube1.0.ino:76:9: error: 'ledBuffer' was not declared in this scope
LedCube1.0.ino: In function 'int allOn()':
LedCube1.0.ino:86:9: error: 'ledBuffer' was not declared in this scope
Error compiling.
The code:
void setup() {
//sets all pins as output
for(int a=22;a<53;a++){
pinMode(a, OUTPUT);
}
//declares the sizes of the cube
int width = 4;
int depth = 4;
int height = 4;
int ledBuffer[4][4][4] = { //creates a buffer that can store values generated by a function
{
{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}
},
{
{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}
},
{
{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0},
},
{
{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0},
}
};
//defines to which connector each layer is connected
int ledXY[4][4] = {
{22,24,26,28} ,
{30,32,34,36},
{23,25,27,29},
{31,33,35,37}
};
int ledZ[4] = {38,40,42,44};
//create variables to start generating raindrops
int rainstep = 0;
int xSeed = 0;
int ySeed = 0;
int zSeed = 0;
}
void loop() {
//generatedrop
ledBuffer[xSeed][ySeed][zSeed] = 0;
if (rainstep == 0)
{
int xSeed=random(0,3);
int ySeed=random(0,3);
int zSeed=random(0,3);
}
else
{
zSeed = zSeed - rainstep;
}
ledBuffer[xSeed][ySeed][zSeed] = 1;
//updatecube
for(int i=0; i<80;i++){
int currentZ = i%4;
allOff;
for(int j=0;j<4;j++){
for(int k=0; i<4;i++){
if(ledBuffer[i][j][k]==0){
digitalWrite(ledBuffer[i][j][k],HIGH);
}else{
digitalWrite(ledBuffer[i][j][k],LOW);
}
}
}
}
}
//function declares entire array 0
int allOff(){
for(int c=0;c<4;c++){
for(int d=0;d<4;d++){
for(int e=0;e<4;e++){
ledBuffer[c][d][e]=0;
}
}
}
};
//function declares entire array 1
int allOn(){
for(int c=0;c<4;c++){
for(int d=0;d<4;d++){
for(int e=0;e<4;e++){
ledBuffer[c][d][e]=1;
}
}
}
};
I re
Can someone help me or at least point me in the right direction.