Code assist

Hello guys.

This noob is in need of some help.
I made a led cube 3x3x3.
Now i want to control some pins randomly.

I got pins 2 to 10 for the coloms and i want to blink them randomly for a certain amount of time.
But i dont't know how.

I hope i can change a bit of code i already have.
I hope you can help me out.

 for (count=0;count<8;count++) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count + 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }

My guess was to change the ++ in someting So it goes randomly.
OR if you have a Better idee i like to know.
It does not have to be one by one but i like it fast like sparkles. Lol.

Thanks in advance

I created a code don't know if it is ok because my Arduino died because of 24v LOL.

You see kolom() and layer()
In the setup i created voidLayer(int) for 3 layers
Every layer turns the other layers off when HIGH
And void kolom(int) for 9 koloms.
They do not turn off each other but go high when read low and other wise.

long randNumber;

void setup() {

  randomSeed(analogRead(0));
}

void loop() 
 {
 for (int i = 0; i < 10; i++) 
 {
  randNumber = random(2, 10);
  Kolom(randNumber); 
  delay(randNumber*10);
 }
 {
  randNumber = random(1, 3);
  Layer(randNumber);
 }
 for (int i = 0; i < 10; i++) 
 {
  randNumber = random(2, 10);
  Kolom(randNumber);
  delay(randNumber*10);
 }
 {
  randNumber = random(1, 3);
  Layer(randNumber);

Jeroentje2212:
I hope i can change a bit of code i already have.
I hope you can help me out.

 for (count=0;count<8;count++) {

digitalWrite(pinArray[count], HIGH);
  delay(timer);
  digitalWrite(pinArray[count + 1], HIGH);
  delay(timer);
  digitalWrite(pinArray[count], LOW);
  delay(timer*2);
 }

What does the KnightRider 3 code snippet have to do with your project? The code above references arrays, but you did not post any arrays.

Jeroentje2212:
OR if you have a Better idee i like to know.
It does not have to be one by one but i like it fast like sparkles. Lol.

A quick search of the forum found a few results of others that have made 3x3x3 LED cubes, like this one.

Jeroentje2212:
I created a code don't know if it is ok because my Arduino died because of 24v LOL.

If you don't have an Arduino, then try setting up a circuit with code on TinkerCad to simulate if it'll work or not. Is the code you posted the complete code? It doesn't look like it because there are no "kolom()" or "layer()" functions. No pinMode(#,OUTPUT) either.

The knight rider effect should turn on the leds 1 by 1 for the first layer and off 1 by 1
Then switch layer and do it again.
And So on
No that is not the complete code.

int pinArray[] ={2, 3, 4, 5, 6, 7, 8, 9, 10};
int ledState   = 0;
int var        = 0;
int count      = 0;
int timer      = 30;
int t200       = 200;
long randNumber;

//all pins to output//
void setup()
 {
 for (int i = 2; i <= 13; i++)
 {
  pinMode(i, OUTPUT);
 }
}
// Kolom(pinnumber) sets pin to HIGH or LOW//
void Kolom(int r)
{
   ledState = digitalRead(r);
   
  if (ledState == HIGH)
  {
   digitalWrite(r, LOW);
  }
  else
  {
   digitalWrite(r, HIGH);
  }
}


void Layer(int number)
 {
  switch (number) 
 {
  case 1:
   digitalWrite(11, HIGH);
   digitalWrite(12, LOW);
   digitalWrite(13, LOW);
  break;
  case 2:
   digitalWrite(12, HIGH);
   digitalWrite(11, LOW);
   digitalWrite(13, LOW);
  break;
  case 3:
   digitalWrite(13, HIGH);
   digitalWrite(12, LOW);
   digitalWrite(11, LOW);
 }
  randomSeed(analogRead(0));
 
}
void loop()
 {
//knightrider layer by layer//
   Layer(1);
  for (count=0;count<8;count++) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count + 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
  for (count=8;count>0;count--) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count - 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
   Layer(2);
  for (count=0;count<8;count++) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count + 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
  for (count=8;count>0;count--) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count - 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
   Layer(3);
  for (count=0;count<8;count++) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count + 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
  for (count=8;count>0;count--) {
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   digitalWrite(pinArray[count - 1], HIGH);
   delay(timer);
   digitalWrite(pinArray[count], LOW);
   delay(timer*2);
  }
////end effect 1////

//10x layer by layer//
  for (int i = 2; i <= 13; i++)
  {
   pinMode(i, HIGH);
  }
  while (var < 10)
  {
   Layer(3);
   delay(t200);
   Layer(2);
   delay(t200);
   Layer(1);
   delay(t200);
   digitalWrite(pinArray[9], LOW);
   delay(t200);
 }
//end//
 {
 for (int i = 0; i < 10; i++) 
 {
  randNumber = random(2, 10);
  Kolom(randNumber);
  delay(randNumber*10);
 }
 {
  randNumber = random(1, 3);
  Layer(randNumber);
 }

 for (int i = 0; i < 10; i++) 
 {
  randNumber = random(2, 10);
  Kolom(randNumber);
  delay(randNumber*10);
 }

 {
  randNumber = random(1, 3);
  Layer(randNumber);
 }
}
}

This is
I orded some New arduino's i ll hope the arrive soon.
Thinkercad is not working for me cause i use tablet only no pc.

The last effect ik want to make it shorter.

Like

for (int i = 0; i < 50; i++) 
 {

Randnumber = random(2, 10);
Kolom(randnumber);
Randnumber = random(11, 13);
Layer(randnumber);
Randnumber = random(10, 100);
delay(randnumber);

I recommend breaking the effects into different functions. Then you can go 1 by 1 to see which effect works or doesn't work.

Do you mean like a void effect1() ;
In de setup?

Jeroentje2212:
Do you mean like a void effect1() ;
In de setup?

Yes, but not in void setup{}. Like you did with Kolom() and Layer()

I have those also in the setup.

Jeroentje2212:
I have those also in the setup.

They are between void setup & void loop, but not nested inside of one of them. The curly brackets close out void setup before void Kolom() and void Layer(). Those are functions waiting to be called, but they are not going to do anything unless they are called. What I have seen as common practice is to put standalone functions, like Kolom() & Layer(), either before void setup or after void loop{}. This keeps setup & loop together.