4 pulsadores y 4 leds y combinarlos

hola soy un novato en arduino,estoy haciendo un trabajo y no se como terminarlo.

ya logre que el "led off" este encendido al inicio y que al presionar el "estar" se prenda el led on y el off se apage. Lo que no se es que cuando este prendido el "led on" presionar varias veces el boton "pulsador" los dos leds iniciales se prendar y luego de 100 ms se apagan mientras el led on siga prendido

mi avance:

// variables botones;
const int puls1 = 2;
const int puls2 = 3;
const int puls3 = 4;
const int puls4 = 5;
//variables led;
int led1=A0;
int led2=A1;
int led_off=A2;
int led_on=A3;
void setup() {
  //pines LED   salida;
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led_off, OUTPUT);
  pinMode(led_on, OUTPUT);
  //pines pulsadores entrada
  pinMode(puls1, INPUT);
  pinMode(puls2, INPUT);
  pinMode(puls3, INPUT);
  pinMode(puls4, INPUT);
  //inicio de los leds
  digitalWrite(led_off, HIGH);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
  digitalWrite(led_on, LOW);
}

void loop() {
 //botonnes para las condiciones
 int estar =digitalRead(puls1);
 int estop =digitalRead(puls2);
 int pulsos =digitalRead(puls3);
 int enter =digitalRead(puls4);
 
 //boton star
  if(estar==HIGH){
  digitalWrite(led_on, HIGH);
  digitalWrite(led_off,LOW); 
    if(pulsos==HIGH){
      
      digitalWrite(led1,HIGH);
      digitalWrite(led2,HIGH);
      delay(100);
     digitalWrite(led1,LOW);
      digitalWrite(led2,LOW); 
      }
  }
  

    
 //boton stop
 if(digitalRead(puls2)==HIGH){
   digitalWrite(A0,LOW);
   digitalWrite(A1,LOW);
   digitalWrite(A2,LOW);
   digitalWrite(A3,LOW);
  }

 //boton pulsos

 if(digitalRead(puls3)==HIGH){
  digitalWrite(A0,HIGH);
  digitalWrite(A1,HIGH);
  }



//boton enter
  if(digitalRead(puls4)== HIGH){
    digitalWrite(A0,HIGH);
    digitalWrite(A1,HIGH);
     delay(100);
     digitalWrite(A0,LOW);
    digitalWrite(A1,LOW);
    delay(100);
     
    
    
    }
  
  

}

Primero que nada, según el esquema, los botones no tienen resistencias a 5V entonces las entradas debes definirlas como INPUT_PULLUP para habilitar las resistencias internas y que fijen el estado HIGH cuando el correspondiente botón no está pulsado.

Te voy dando algunas pistas que espero te sirvan.

  • LED_ON y LED_OFF solo se modifican cuando pulsas START o STOP, los otros botones no actúan sobre esas salidas.
    Necesitas una variable bool para guardar el estado (true/false) del sistema, por ej., true si pulsas START, false cuando pulsas STOP.

  • Los pines los tienes asociados a variables entonces es más fácil de entender lo que hace el código si escribes, por ej.

digitalWrite(LED_ON, HIGH);

en lugar de

digitalWrite(A3, HIGH);
  • Cuando pulsas PULSOS y el sistema está ON, debes hacer parpadear LED_PULSO (o sea, lo pones HIGH, esperas 100 mseg y lo pones LOW), solo actuas sobre esa salida.
    Además tienes que incrementar la variable N para contar los pulsos que ingresas.

  • Cuando pulsas ENTER tienes que hacer un lazo (por ej. con for() ) y hacer parpadear LED_PULSOS las veces que indique la variable N. No te aclaran nada de tiempos, podrías hacer que encienda 100 mseg, y permanezca apagado 500 mseg, por ej. (ten presente que tienes que poder contar cuantas veces parpadea para ver si coincide con la cantidad que ingresaste).
    Luego pones N a 0 para que que lista para una nueva cuenta.

Saludos

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.