////////////////Estructura del potenciometro///////////////////////
const unsigned short int PIN_POTENCIOMETRO = A0;
unsigned int valorPotenciometro = 0;
unsigned int porcentajePotenciometro = 0;

///////////////Estados del boton//////////////////////////
enum estadoboton {
  EST_PULSADO,
  EST_SUELTO,
  TRANS_PULSANDO,
  TRANS_SOLTANDO
};
estadoboton estadoMiBoton = EST_SUELTO;


////////////////////tiempo///////////////////
int tiempoinicio = 0;


/////////////////////////////////////////////CONTRASEÑA///////////////////////////////////////
int miContrasena [4] = {1, 2, 3, 4};
int contrasena[4]; 


void setup() {
  pinMode(PIN_POTENCIOMETRO, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {

/////////////////Potenciometro////////////////////////
  valorPotenciometro = analogRead(PIN_POTENCIOMETRO);
  porcentajePotenciometro = int((valorPotenciometro / 64));
  //Serial.println(porcentajePotenciometro);

  //////////////////////////////////////////IMPLEMENTACION Botón/////////////////////////////////////////////////////////////////////
  if (estadoMiBoton == EST_SUELTO || estadoMiBoton == TRANS_SOLTANDO) {
    if (digitalRead(2) == LOW) {
      estadoMiBoton = TRANS_PULSANDO;

    } else if (digitalRead(2) == HIGH) {
      estadoMiBoton = EST_SUELTO;
    }
  } else if (estadoMiBoton == EST_PULSADO || estadoMiBoton == TRANS_PULSANDO) {
    if (digitalRead(2) == LOW) {
      estadoMiBoton = EST_PULSADO;

    } else if (digitalRead(2) == HIGH) {
      estadoMiBoton = TRANS_SOLTANDO;
    }
  }



/////////////////////////////////////////////////PROGRAMA//////////////////////////////////////////////////////////


/////////////Aqui en el puerto no se ve como va cambiando el valor///////////////////////
  /*if (estadoMiBoton == EST_PULSADO) {
    tiempoinicio = millis();
  } else if (millis() - tiempoinicio > 2000) {
    contrasena[0]=porcentajePotenciometro;
    Serial.println(contrasena[0]);
  };*/



/////Prueba 1 con flags no me sale/////////////////////

if (estadoMiBoton == LOW) {
    tiempoinicio = millis();
  } else if (millis() - tiempoinicio > 2000) {
    contrasena[0]=porcentajePotenciometro;
    Serial.print("1º num: ");
    Serial.println(contrasena[0]);
  };
 
Serial.print("estado boton ");
Serial.println(estadoMiBoton);
delay(100);

/*
if (segundovalorguardado == true && estadoMiBoton == EST_SUELTO && primervalorguardado == true){     
    tiempoinicio = millis();
  } else if (millis() - tiempoinicio > 2000) {
    contrasena[1]=miPotenc.valor_potenc;
    Serial.print(" 2º num: ");
    Serial.println(contrasena[1]);
  };*/

  //////////////////////////////////////////////Lectura de los datos//////////////////////////////////////////////////////////////



  delay(100);
  }