Go Down

Topic: Cambio de estado en un led segun condicion (Read 129 times) previous topic - next topic

Herly

Hola A todos. Estoy implementando este código para una alarma, pero me encuentro en un punto en que necesito que el led  "ledGreen" cambie de estado (encienda con la contraseña correcta y apague cuando por segunda vez la contraseña es correcta) cada que la contraseña sea introducida correctamente.




#include <Password.h> //Incluimos la libreria Password
#include <Keypad.h> //Incluimos la libreria Keypad


Password password = Password("1234");  //Definimos el Password
int dlugosc = 4;                        //cantidad de caracteres de clave



int buzzer = 10; //Creamos las Variables de salida
int ledRed = 11;
int ledGreen = 12;






int ilosc; //Numero de Clicks
const byte ROWS = 4; // Cuatro Filas
const byte COLS = 4; // Cuatro Columnas

// Definimos el Keymap
char keys[ROWS][COLS] = {
 {'1','2','3',},
 {'4','5','6',},
 {'7','8','9',},
 {'*','0','#',}
};

byte rowPins[ROWS] = { 9,8,7,6 };// Conectar los keypads ROW1, ROW2, ROW3 y ROW4 a esos Pines de Arduino.
byte colPins[COLS] = { 5,4,3,2, };// Conectar los keypads COL1, COL2, COL3 y COL4 a esos Pines de Arduino.

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup()
{
 
 keypad.addEventListener(keypadEvent);  
 pinMode(ledRed, OUTPUT);  
 pinMode(ledGreen, OUTPUT);
 pinMode(buzzer, OUTPUT);

 digitalWrite(ledRed, LOW);
 digitalWrite(ledGreen, LOW);

 //Sonido de encendido por primera vez
 digitalWrite(ledGreen, HIGH);
 digitalWrite(buzzer, HIGH);  
 delay(1000);            
 digitalWrite(buzzer, LOW);
 digitalWrite(ledGreen, LOW);  
 delay(100);


}

void loop()




{

 keypad.getKey();
}
void keypadEvent(KeypadEvent eKey)
{
 switch (keypad.getState())
 {
   case PRESSED:
 
int i;
for( i = 1; i <= 1; i++ )
{
 digitalWrite(buzzer, HIGH);  
 delay(200);            
 digitalWrite(buzzer, LOW);  
 delay(100);      
}    



switch (eKey)
{
/*case '#':break;    /    case '*':break;*/

default:
ilosc=ilosc+1;
password.append(eKey);
}

if(ilosc == dlugosc)
{
delay(250);
checkPassword();
ilosc = 0;
}
}
}

void checkPassword()
{
 if (password.evaluate())
 {
int i;
for( i = 1; i <= 1; i++ ) // veces que suena en clave Correcta
{
 digitalWrite(ledGreen, HIGH);
 digitalWrite(buzzer, HIGH);  
 delay(700);            
 digitalWrite(buzzer, LOW);  
 delay(100);      
}    
   ilosc = 0;
   password.reset();
   
   digitalWrite(ledRed, LOW);
   
   delay(900);
   //digitalWrite(ledGreen, LOW);
   digitalWrite(ledRed, LOW);    
   
 }  
 else  
 {
int i;
for( i = 1; i <= 3; i++ ) //veces que suena  en clave Incorrecta
{
 digitalWrite(ledRed, HIGH);
 digitalWrite(buzzer, HIGH);  
 delay(100);            
 digitalWrite(buzzer, LOW);  
 delay(60);      
}  
   ilosc = 0;  
   password.reset();
   digitalWrite(ledRed, HIGH);    
     
 }
}



_jose_

Por favor ,repasa las normas del foro,sobre todo en lo referente a como postear codigo correctamente y en que parte del foro debes postear.

Go Up