Hola buenos dias.
Estoy haciendo un pequeño proyecto, en el cual necesito varias contraseñas y me sale muy grande, podéis ayudarme a hacerlo mas corto?
os paso el código.
#include <Keypad.h>
char contrasena1[]="11";
char contrasena2[]="12";
char contrasena3[]="13";
char contrasena4[]="14";
char contrasena5[]="15";
char contrasena6[]="16";
char contrasena7[]="17";
char contrasena8[]="18";
char contrasena9[]="19";
char contrasena10[]="20";
char codigo[2];
int cont=0;
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
char customKey = customKeypad.getKey();
if (customKey != NO_KEY)
{
codigo[cont]=customKey;
Serial.println(codigo[cont]);
cont=cont+1;
if(cont==2)
{
if(codigo[0]==contrasena1[1]&&codigo[1]==contrasena1[1])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena2[2]&&codigo[1]==contrasena2[2])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena3[3]&&codigo[1]==contrasena3[3])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena4[4]&&codigo[1]==contrasena4[4])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena5[5]&&codigo[1]==contrasena5[5])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena6[6]&&codigo[1]==contrasena6[6])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena7[7]&&codigo[1]==contrasena7[7])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena8[8]&&codigo[1]==contrasena8[8])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena9[9]&&codigo[1]==contrasena9[9])
{
digitalWrite(13,!digitalRead(13));
}
if(codigo[0]==contrasena10[10]&&codigo[1]==contrasena10[10])
{
digitalWrite(13,!digitalRead(13));
}
cont=0;
}
}
}