Prender una serie de leds con un pulsador

Hola a todos, en Arduino soy nuevo, en programación mas o menos y en electrónica básica también más o menos.
Estoy aprendiendo lo básico y en este caso quiero que con un pulsador al ir pulsando se vallan prendiendo los led... el problema son dos,
1º al iniciar el programa me empieza con el led 1 prendido,
2º si cambio por ejemplo el ledPind02 a ledPin13.. ya no anda nada..

Dejo el programa y muchas gracias por su colaboración.!

int pin01=0;
int pin2=2;
int pin3=3;
int pin4=4;
int ledPin07=7;//PIN DE ENTRADA DIGITAL
int conta=-0;

void setup(){

 Serial.begin(9600);
 Serial.println("conta es igual a ");
 Serial.println(conta);
 pinMode(ledPin07, INPUT);
 pinMode(pin01, OUTPUT);
 pinMode(pin2, OUTPUT);
 pinMode(pin3, OUTPUT);
 pinMode(pin4, OUTPUT);

 digitalWrite(pin01, LOW);
 digitalWrite(pin2, LOW);
 digitalWrite(pin3, LOW);
 digitalWrite(pin4, LOW);
 
  
}

void loop(){


 if (digitalRead(ledPin07)==LOW){
       
    delay(400);
   conta++;
 Serial.println(conta);
 digitalWrite(pin01+conta,HIGH);

 
   }



}
/* Las conexiones, salida 1 a la 4 a los led. 
*  el pulsador esta conectado al pin 7 con una resistecia de 1k a positivo y a un pin del pulsador
*  el otro pin del pulsador tiene una resistencia de 100hom, al pulsarlo pasa a estado bajo.


*/

Saludos a todos
fede

fede

Una lectura a las normas del foro no te vendrían mal, para luego editar tu mensaje. Los códigos de un programa no se publican de esta manera.
Por favor, edita tu mensaje.
Saludos!

Primero, pon en programa dentro de [ cod ] caso contrario los moderadores te reprenderán (además de que será más fácil de ver).

Luego me llama mucho la atención: ¿Por qué algunas contasntes tienen un cero y otras no? Eso es una fuente de bugs poderosa. Además tienes una que dice Pin01=0 ¿Eso es para confundir a alguien? o a ti mismo? Uniforma y arregla eso!!

Leí por algún lado que no se puede usar el pin 0 dado que es usado para comunicaciones de serial (y tú usas serial), así que ni el pin 1 ni el 0.

Paciencia ener.. esta empezando.
Si hay errores pero veamos
Las siglas que usas para cada cosas son contradictorias.
Llamar ledPin07 y luego usarlo para leer el estado de un pulsador es cuando menos fuera de lo habitual.
Claro que si tu lo entiendes, no hay problema.
Yo lo llamaría botonPin por ejemplo
luego leo esto

int conta=-0;

Ahi hay un -0 un menos? ERROR
borra eso y deja

int conta = 0;

mas tarde en el loop cuando el pulsador esta a GND o LOW haces

  if (digitalRead(ledPin07)==LOW){   
     delay(400);
     conta++;
     Serial.println(conta);
     digitalWrite(pin01+conta,HIGH);
  }

esperas 400 mseg. Seguro que te tomas tu tiempo para evitar rebotes.
incrementas conta en 1, lo imprimes y luego disparas una serie de salidas que van desde pin01 = 0
pin01 = 0 es Esta dedicado a tu Monitor serie de modo que tendrás problemas. Deberías empezar en pin2 = 2; y limitarlo a lo que has definido hasta pin 4.
Cuando llegue a 4 debe dejar de contar o dejar de cambiar salidas.

Luego preguntas que cuando lo cambias al pin 13 ya no funciona, no puede funcionar mas alla de los errores señalados porque no hay pines mas alla del 13.

Hola, Se agradece la paciencia y la forma tan buena de explicar, realmente muy bueno. :grin:

Si tengo que admitir lo desprolijo que soy al escribir código, lo voy arreglar, al igual que al postear y esas cosas.
Estoy aprendiendo y bueno hay que seguir adelante…
Muchas gracias a todos.!!!

PD: Le pido disculpa al moderador, ya que he leído el gran trabajo que hacen en mover los topic, a otros foros (creo que se dice así).

Saludos a todos

Fede