Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7); //
LiquidCrystal lcd(rs,E,D4,D5,D6,D7);
int k=0,tiempo=1,i=0;
void setup() {
lcd.begin(16,2);
lcd.print("Welcome to EIEE");
pinMode(11,INPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);
void loop() {
int SW1=digitalRead(11);
int SW2=digitalRead(12);
int SW3=digitalRead(13);
if (k!=0)
lcd.setCursor(0,1);
if(SW1==0&&SW2==0&&SW3!=0)
i=0;
if(SW1==0&&SW2!=0&&SW3==0)
i=0;
if(SW1!=0&&SW2==0&&SW3==0)
i=0;
if (i==0) lcd.print("REGISTRARSE
AQUI ");
}
if (SW1==0&&SW2==0&&SW3==0)
lcd.setCursor(0,1);
k=0;
i=0;
tiempo=1;
if(SW1==0&&SW2==0&&SW3!=0&
&k==0)
lcd.setCursor(0,1);
delay(50);
i=0;
tiempo=tiempo+1;
if(tiempo>20) k=1;
if(SW1==0&&SW2!=0&&SW3==0&
&k==0)
lcd.setCursor(0,1);
delay(50);
i=0;
if(SW1!=0&&SW2!=0&&SW3==0)
lcd.setCursor(0,1);
lcd.print("ERROR ");
i=1;
if(SW1!=0&&SW2!=0&&SW3!=0)
lcd.setCursor(0,1);
lcd.print("ERROR ");
i=1;
Al no poder usar el sensor AS606 de huella dactilar, este fue reemplazado por un teclado
matricial 3x4, donde a cada alumno se le asignó una clave de 4 dígitos para que al
momento de ingresar esta clave, el nombre del alumno se visualice en la pantalla lcd y
posterior a esto se guardaba la asistencia del alumno en la memoria micro sd, se simulo
en proteus como se puede visualizar en la siguiente figura
Figura x: Simulación en Proteus Proyecto N°2
#include <SD.h>
#include <SPI.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
File logFile;
#define Password_Length 6 //
ingrese la longitud de la contraseña
char Master1[Password_Length] =
"1111#"; //Modifica la password;
char Master2[Password_Length] =
"2222#"; //Modifica la password;
char Master3[Password_Length] =
"3333#"; //Modifica la password;
char Master4[Password_Length] =
"4444#"; //Modifica la password;
char Master5[Password_Length] =
"5555#"; //Modifica la password;
char Master6[Password_Length] =
"6666#"; //Modifica la password;
char Master7[Password_Length] =
"7777#"; //Modifica la password;
char Master8[Password_Length] =
"8888#"; //Modifica la password;
bool Pass_is_good;
char customKey;
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3'},
};
Keypad customKeypad =
Keypad(makeKeymap(hexaKeys),
rowPins, colPins, ROWS, COLS);
void setup(){
lcd.init();
lcd.backlight();
pinMode(signalPin, OUTPUT);
digitalWrite(signalPin, HIGH);;
if (!SD.begin(1))
{
return;
SD.remove("datalog.txt");
int readSensor()
return 0;
void loop(){
lcd.setCursor(0,0);
customKey =
customKeypad.getKey();
if (customKey){
Data[data_count] = customKey;
lcd.setCursor(data_count,1);
lcd.print(Data[data_count]);
data_count++;
}
if(data_count ==
Password_Length-1){
lcd.clear();
if(!strcmp(Data, Master1)){
lcd.setCursor(0,1);
lcd.print("Pablo Cortes");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Xadier Vargas");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Diego Layana");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Ariel Munoz");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Franco Panti");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Richard Carvajal");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Paul Terraza");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
lcd.setCursor(0,1);
lcd.print("Manuel Barraza");
digitalWrite(signalPin, LOW);
delay(3000);
digitalWrite(signalPin, HIGH);
else{
lcd.print("Clave Incorrecta");
delay(3000);
lcd.clear();
clearData();
}
void clearData(){
logFile = SD.open("datalog.txt",
FILE_WRITE);
if (logFile) {
logFile.print("Nombre= ");
if(!strcmp(Data, Master1)){
logFile.print("Pablo Cortés
\r\n");
logFile.print("Xadier Vargas
\r\n");
logFile.print("Diego Layana
\r\n");
else if(!strcmp(Data,
Master4)){
logFile.print("Ariel Munoz
\r\n");
}
else if(!strcmp(Data,
Master5)){
logFile.print("Franco Panti
\r\n");
else if(!strcmp(Data,
Master6)){
logFile.print("Richard Carvajal
\r\n");
else if(!strcmp(Data,
Master7)){
logFile.print("Paul Terraza
\r\n");
else if(!strcmp(Data,
Master8)){
logFile.print("Manuel Barraza
\r\n");
logFile.close();
}
else {
Serial.println("Error al abrir el
archivo");
delay(500);
while(data_count !=0){
Data[data_count--] = 0;
return;
Posterior a esto se imprimió el circuito para plancharlo sobre la placa y nos resulto de la
siguiente forma:
Ya con la placa lista se prosiguió a soldar los componentes para luego montar el circuito
final, en la siguiente figura se puede observar la placa final:
Luego de montar el circuito final con el teclado matricial, pantalla lcd, relé, modulo micro
sd en la placa, y puesto en el gabinete el resultado final de nuestro Proyecto control de
asistencia a clases mediante teclado matricial es el siguiente: