Go Down

Topic: Problema con mi codigo (Read 205 times) previous topic - next topic

Besman

Feb 14, 2019, 05:49 pm Last Edit: Mar 01, 2019, 07:55 pm by surbyte
Espero alguien me pueda apoyar estoy empezando hacer un proyecto y no estoy muy involucrado en el ambiente espero alguien pudiera apoyarme se lo agradeceria mucho pondre lo que requiero y parte de mi codigo pero no se como hacerle gracias y espero alguien pueda apoyarme

lo que necesita es poder ingresar las tres claves que pida primero la clave de grupo despues ingresar el id y despues nos pide la clave de juego

para la clave de grupo son 5 numeros
para el id son 3 o 4
para la clave de grupo solo son 4

y despues ya nos diga que accedio correctamente; para ingresar otros tres valores mas y asi sucecivamente
el codigo fuente es el siguiente

Code: [Select]
#include <Keypad.h>
#include <LiquidCrystal.h>


LiquidCrystal lcd(13,12,11,10,9,8); // (RS, ENABLE, D4, D5, D6, D7)

const byte rows = 4; // establecemos varibles tipo constantes tipo byte para renglones
const byte cols = 4; // establecemos varibles tipo constantes tipo byte para columnas
char keys[rows][cols] = { // establecemos un arreglo tipo char de columnas y filas del teclado



{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'} };

   byte rowPins[rows] = {7, 6, 5,4}; //Establecemos arreglos tipo byte para los pines de conexion de filas 7,6,5,4
   byte colPins[cols] = {3, 2, 1,0}; //Establecemos arreglos tipo byte para los pines de conexion de columnas3,2,A,A4
         

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );

 int i=0, r=0; // declaramos variables enteras para i contador de teclas, y r las teclas que se presionaron
  int ke=0; // declaramos una variable entera para el contador de errores de clave

#define RELE A0 // Defenimos RELE al pin A0

void setup() { // bloque de inicialización

 lcd.begin(16, 2); // inicializamos display lcd 16X
 pinMode(RELE, OUTPUT); // declaramos como salidas a RELE y A1
 pinMode(A1,OUTPUT);

digitalWrite(RELE, LOW); // aseguramos que RELE este en cero al inicio
// ponemos un letrero para que apaezca al inico o reset del programa y tarjeta

 lcd.setCursor(0,0); // nos posicionamos columa 0 linea 0
 lcd.println( "  ADMINISTRADOR " ); // ponemo este letrero
 lcd.setCursor(1,1); // nos posicionamos segunda fila o renglón
 lcd.println("Bertin Manrique");
 delay(5000); // estableecemos un tiempo de 2 segundos
 lcd.clear(); // borra display
}
void loop() { // bloque repetitivo

 lcd.setCursor(0,0); // posicionamiento
 lcd.print( "  BIENVENIDOS " );
 lcd.setCursor(0,1);
 lcd.print( " Clave de grupo " );
 char key; //declaramos una varible tipo char llamada key o tecla
 key = keypad.getKey(); // instruccion para obtener y almacenar la tecla que se presiona en key
 

if (key != NO_KEY) { // Si se presiona alguna tecla

if ((key >= '0') && (key <='9')) { // Si key es >= '0' y key <= '9'

r = r*10 + (key-'0');

 lcd.clear();
    lcd.setCursor(5, 1);// cursor: columna 5, fila 1. Empieza en (5,1)
    lcd.setCursor(0,0);
    lcd.print( " Introduciendo " );
    lcd.setCursor(0,1);
    lcd.print("*");
    delay(500); // poner un tiempo de 300 milisegundos para que se muestre la tecla pulsada

if(++i==1) { //Una vez que incremento i, preguntamos si el nuemro de teclas pulsada es 4

if (r==1) { // aqui va la clave secreta se puede cambiar y preguntamos si las 4 tecla pulsada son iguales a la clave 1957
 

  lcd.clear(); // borramos display
  lcd.setCursor(3, 0);    // ponemos el cursor en la (0,1)
  lcd.println("Bien Acceso   " );    //ponemos letrero
  lcd.setCursor(3, 1);      // ponemos el cursor en la (0,1)
  lcd.println(" Permitido    " );       //ponemos letrero
  digitalWrite (RELE, HIGH);     //activanos o prendemos RELE
  delay(5000);        // que dure prendido 4 segundos
  digitalWrite(RELE, LOW);    // pahgamps RELE
  lcd.clear();         // borramos lcd
ke=0; // contador de errores ponemos ke contador de errores en cero

}

else {        // si r no es igual a 1957

if(ke==2){ // si ke es igual a 2

   lcd.setCursor(0,0); // posicionamos cursor
   lcd.println("Sistema Bloqueado "); //ponemos letrero
   lcd.setCursor(0,1); // posicionamos cursor
   lcd.println("AVISE AL ADMINISTRADOR"); //ponemos letrero
   digitalWrite(A1,HIGH); // activamos o prendemos led de sistema bloqueado
   delay(9000); // que dure el mensaje y el led de sistema bloquead 9 segundos
   digitalWrite(A1,LOW); // apagamos A1
  ke=0; // resteamos el ke de errores
 
}
 else{            
    ke++; // incrementamos el contador de errores ke
    lcd.clear(); //borramos LCD
    lcd.setCursor(5, 0); //posicionamos cursor
    lcd.print(" ERROR   "); // ponemos letrero
    lcd.setCursor(14,0); // posicionamos cursor
    lcd.println(ke); //ponemos letrero
    lcd.setCursor(0, 1); // posicionmaos cursor
    lcd.print(" ACCESO DENEGADO  ");
    delay(700); // que dure un tiempo de
         }
   }
       i=r=0; // reseteamos las variables i y r
       delay(500); //un tiempo de
      lcd.clear (); // borramos pantalla
}

}
}

delay(25); //ponemos un tiempo de 25 milisegundos
}


ahi esta espero alguien pudiera apoyarme se lo agradecere mucho

PaulS

This part of the forum is for posting in English. There are sections of the forum for other languages.

You can use the Report to moderator link to ask that your post be moved.
The art of getting good answers lies in asking good questions.

surbyte

Sigues interesado en tu problema?

Go Up