class LED { //creo la classe led
  private:
    bool stato;
    int pin; 
  public:
    LED(int piedino) {
      stato = false; 
      pin = piedino;
      pinMode(pin, OUTPUT);
    }
    void accendi() {   //accendo il led
      digitalWrite(pin, HIGH);
      stato = true;
    }
    void spegni() {    //spengo il led
      digitalWrite(pin, LOW);
      stato = false;
    }
    void inverti() {      //inverto lo stato del led
      if (stato==true) {
        spegni();
      } else {
        accendi();
      }
    }
    void lampeggio(int x) {
      for (int i = 0; i < x; i++) {
        accendi();
        delay(500);  // L per 500ms(mezzo secondo)
        spegni();
        delay(500);  
      }
    }
    void test(int test) {   //verifico 
      for (int i = 0; i < test; i++) {
        accendi();
        delay(500);
        spegni();
        delay(500);
      }
     lampeggio(3);
    }
};
class Bottone {
  private:
    int pin;
  public:
    Bottone(int p) {
      pin = p;
      pinMode(pin, INPUT_PULLUP);
    }
    bool press() {
      if (digitalRead(pin) == HIGH) { 
        return false;
      } else {
        return true;
      }
    }
};
LED ledVerde(12);
LED ledAzzurro(13);
Bottone pulsante(2);
void setup() {
  ledVerde.lampeggio(3);
  ledAzzurro.lampeggio(3);  
}
void loop() {
  if (pulsante.press()) {
    ledVerde.accendi();
    ledAzzurro.spegni();
  } else {
    ledVerde.spegni();
    ledAzzurro.accendi();
  } 
}