Sequência de botão

Olá sou iniciante no arduino, ainda não sei criar código bem estou precisando de uma ajuda com um projeto. Preciso de um código pra usar a sequência de 2 botões pra acionar 2 led junto. Tipo você aperta 4vezes o primeiro botão e uma vez o segundo botão aciona os dois led apartir dai qualquer botão que você apertar desliga a sequência. Por favor ! Alguém pode me ajudar ?

O que é que já tentaste fazer?

(CTRL-T in the IDE, then Code tags, use </>)

int cont = 4;

void setup () {

pinMode (2, INPUT);
pinMode (3, INPUT);  
pinMode (13, OUTPUT);
pinMode (12, OUTPUT);

}

void loop () {


if (digitalRead (3) == 1) {// if the button is pressed

cont ++; // assigns +1 to cont variable

delay (100); // give time for pressing, if not the arduino endoida

}

if (cont == 5) {cont = 1;}  

if (cont == 1) {

}

else if (cont == 2) { 
//
}

else if (cont == 4) {  
//
digitalWrite (13, HIGH);
digitalWrite (12, HIGH);
}
}
[/ code]

bubulindo:
O que é que já tentaste fazer?

int cont = 4;

void setup () {

pinMode (2, INPUT);
pinMode (3, INPUT);
pinMode (13, OUTPUT);
pinMode (12, OUTPUT);

}

void loop () {

if (digitalRead (3) == 1) {// if the button is pressed

cont ++; // assigns +1 to cont variable

delay (100); // give time for pressing, if not the arduino endoida

}

if (cont == 5) {cont = 1;}

if (cont == 1) {

}

else if (cont == 2) {
//
}

else if (cont == 4) {
//
digitalWrite (13, HIGH);
digitalWrite (12, HIGH);
}
}
[/ code]

Vamos por partes:

O teu código não endoida... ele está a fazer o que dizes para fazer.

Por exemplo, isto:

if (digitalRead (3) == 1) {// if the button is pressed
cont ++; // assigns +1 to cont variable
delay (100); // give time for pressing, if not the arduino endoida
}

Não leva em consideração que tu queres detectar a mudança de estado do botão. O que isto faz é apenas ver se o botão está a 1 e realiza a lógica dentro de chavetas. Para detectares a mudança de estado fazes algo assim:

unsigned char estado_anterior = 0; 

void loop(){

unsigned char estado = digitalRead (3);
if ( estado == 1 && estado != estado_anterior) {// se o botão foi pressionado e não estava pressionado antes.
   cont ++; // assigns +1 to cont variable
   delay (100); // give time for pressing, if not the arduino endoida
   }
estado_anterior = estado; //guarda o estado do botão para comparação no próximo ciclo. 
}

Se começares com a variável cont = 0...

int cont = 0;
unsigned char leds_acesos = 0; 

//...

if (cont == 5) {cont = 0;} // começas do zero e se já chegaste a 5 pulsos a função reseta. 

if (cont == 4 && digitalRead(segundo_botao) == 1) { //carregaste 4 vezes no primeiro botão e se carregares no segundo, acendes as luzes. 
   digitalWrite (13, HIGH);
   digitalWrite (12, HIGH);
   leds_acesos = 1; 
   }  

//se os leds estão acesos e algum botão é pressionado... 

if (leds_acesos == 1 && (estado == 1 || digitalRead(segundo_botao) == 1){
   digitalWrite (13, HIGH);
   digitalWrite (12, HIGH);
   leds_acesos = 0; 
   cont = 0; 
}

Existem melhorias que podes e deves fazer neste código, mas a estrutura deve funcionar.

Eu fiz desse geito o código mais não consegui oque eu queria . no caso desse código era pra a funcionar apertar 4 vezes o primeiro botão e uma vez o segundo botão mais não funciono alguém me da uma luz ?

int cont = 5;

#define pinbotao2 3

#define pinbotao1 2

#define pinLed 13

#define pinled 12

void setup() {

// put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

while(pinMode,13,OUTPUT && pinMode,12,OUTPUT){

if (digitalRead(3) == 1) {

digitalRead(2) == 1;

cont++;

delay(300);

}

if(cont==5){cont=1;}

if (cont==1) {

// COLOQUE AQUI AS AÇOES DESEJADAS NESSE CASO

digitalWrite(13,HIGH);

delay(300);

}

else if(cont==2){

digitalWrite(12,HIGH);

digitalWrite(13,HIGH);

delay(300);

}

else if(cont==3){

digitalWrite(13,HIGH);

delay(300);

digitalWrite(13,LOW);

digitalWrite(12,LOW);

delay(300);

delay(300);

}

else if(cont==4 && digitalRead(2) == HIGH ) {

digitalRead(2) == 1;

digitalWrite(13,LOW);

digitalWrite(12,LOW);

}

E o que é que não funciona? E mais importante, porque mudaste o código que coloquei anteriormente?

Mudei mais não conseguir compilar ele pra placa

E que erros é que apareceram quando tentaste compilar?