loop problem

? want to do this code with the loop but ? cant please help me

int led = 2;
int led1 = 3;
int led2 = 4; 
int led3 = 5; 
int led4 = 6; 
int hiz = 50;

void setup() {                
  
  pinMode(led, OUTPUT); 
  pinMode(led1, OUTPUT); 
  pinMode(led2, OUTPUT); 
  pinMode(led3, OUTPUT); 
  pinMode(led4, OUTPUT); 
 }



void loop() {
  digitalWrite(led, HIGH);   
  delay(hiz);               
  digitalWrite(led, LOW);    
  delay(hiz);               
  digitalWrite(led1, HIGH);   
  delay(hiz);               
  digitalWrite(led1, LOW);    
  delay(hiz);  
  digitalWrite(led2, HIGH);   
  delay(hiz);               
  digitalWrite(led2, LOW);    
  delay(hiz);               
  digitalWrite(led3, HIGH);   
  delay(hiz);               
  digitalWrite(led3, LOW);    
  delay(hiz);  
  digitalWrite(led4, HIGH);   
  delay(hiz);               
  digitalWrite(led4, LOW);    
  delay(hiz);  
  digitalWrite(led3, HIGH);   
  delay(hiz);               
  digitalWrite(led3, LOW);    
  delay(hiz); 
  digitalWrite(led2, HIGH);   
  delay(hiz);               
  digitalWrite(led2, LOW);    
  delay(hiz);   
  digitalWrite(led1, HIGH);   
  delay(hiz);               
  digitalWrite(led1, LOW);    
  delay(hiz);  
  digitalWrite(led, HIGH);   
  delay(hiz);               
  digitalWrite(led, LOW);    
  delay(hiz); 

 }

it is not work

int ledPin[] = {2,3,4,5,6};
int hiz = 50;
int c=1;
void setup()
{
  for (int i =1;i<6;i++)
  {
    pinMode(ledPin[i], OUTPUT);
  }
}

void loop() {
  
  c=c+1;
  delay(hiz); 
  digitalWrite(ledPin[c], HIGH);   
  delay(hiz);               
  digitalWrite(ledPin[c], LOW);    
  delay(hiz); 
}
 int hiz = 50;

Are you expecting to see a difference with a 50mS delay ?

first code is working but second is not working

Arrays start at 0 not 1

Mark

When you create an array, the first index starts at zero. That's just how it is.
So for your code, ledPin[0] is 2.
The delay of 50ms is very short, you can make it 100 to be more visible.

int ledPin[] = {2,3,4,5,6};
int hiz = 50;
int c=0;

void setup()
{
  for (int i =0; i<5 ;i++)
  {
    pinMode(ledPin[i], OUTPUT);
  }
}

void loop() 
{
  for (int i=0; i<5; i++)
  { 
    digitalWrite(ledPin[i], HIGH);   
    delay(hiz);               
    digitalWrite(ledPin[i], LOW);    
    delay(hiz); 
  }
}

Or you can use 'c' but you have to reset it.
Below is a different loop.

int ledPin[] = {2,3,4,5,6};
int hiz = 50;
int c=0;

void setup()
{
  for (int i =0; i<5 ;i++)
  {
    pinMode(ledPin[i], OUTPUT);
  }
}

void loop() 
{
  digitalWrite(ledPin[c], HIGH);   
  delay(hiz);               
  digitalWrite(ledPin[c], LOW);    
  delay(hiz); 
  c++;
  if (c==5)
    c = 0;
}

thank you Caltoa :slight_smile: