Beruflich Dokumente
Kultur Dokumente
Resultado:
El CI Programable del Arduino tiene establecido las condiciones comparativas del
Teclado para saber si la contrasea establecida anteriormente es la correcta.
Investigacin adicional sobre el tema
Investigacin sobre la conexin del Teclado Matricial y la conexin de loa pantalla
LCD.
Discusin
Tuvimos problemas sobre la conexin de la pantalla LCD y del Teclado Matricial
porque la conexin de la fuente de alimentacin no era la indicada.
Conclusiones
En esta prctica aprendimos el funcionamiento de un circuito analgico como puede
convertir una seal analgica puede convertirse por medio de un CI programable a
una seal digital.
}
reset();
break;
case 'B':
informacion(); //muestra en el lcd las opcionesde la caja fuerte
reset();
break;
case 'C':
cambioPass();
reset();
break;
case 'D':
lcd.setCursor(0, 0);
lcd.print("Presionaste D");
delay(600);
seguro.write(CERRAR);
reset();
break;
case '*':
lcd.setCursor(0, 0);
lcd.print("Presionaste *");
delay(600);
reset();
break;
case '#':
lcd.setCursor(0, 0);
lcd.print("Presionaste #");
delay(300);
reset();
break;
default: //si es un numero debe imprimirlo en el LCD y ademas guardarlo en
el arreglo passUser
if(a==1){
passUser[i] = ingreso;
printPass(passUser[i], 5 + i, 1);
}
if(a==2){
confirmPass[i] = ingreso;
printPass(confirmPass[i], 5 + i, 1);
}
i++;
if (i > 3)
i = 0;
}
}
void cleanlcd() {
lcd.setCursor(0, 0);
lcd.print("
");
lcd.setCursor(0, 1);
lcd.print("
");
}
void printPass(char a, int columna, int fila ) {
lcd.setCursor(columna, fila);
lcd.print(a);
delay(100);
lcd.setCursor(columna, fila);
lcd.print("*");
}
int evaluar(int a) {
int j = 0;
if (a==1){
for (int i = 0; i <= 3; i++) {
if (password[i] == passUser[i]) {
j++;
}
}
}
if(a==2){
for (int i = 0; i <= 3; i++) {
if (passUser[i] == confirmPass[i]) {
j++;
}
}
}
if (j == 4) {
return j=1;
}
else {
return j=0;
}
}
void reset() {
lcd.setCursor(0, 0);
lcd.print(" **PASSWORD** ");
lcd.setCursor(5, 1);
lcd.print("____");
for(int i =0;i<=3;i++){
passUser[i]=NO_KEY;
confirmPass[i]=NO_KEY;
}
i=0;
}
void msgError(){
lcd.setCursor(0, 0);
lcd.print("
ERROR
delay(500);
");
}
void correcto(){
lcd.setCursor(0, 0);
lcd.print("
CORRECTO
//Abrir servomotor
seguro.write(ABRIR);
delay(500);
}
void informacion() {
lcd.setCursor(0, 0);
lcd.print("'A' para introdu");
delay(400);
lcd.setCursor(0, 0);
lcd.print("cir la pass
");
delay(400);
lcd.setCursor(0, 0);
lcd.print("'C' para cambiar");
delay(400);
lcd.setCursor(0, 0);
lcd.print(" la pass
");
delay(400);
}
void cambioPass() {
lcd.setCursor(0, 0);
lcd.print("Cambio de pass ");
delay(400);
lcd.setCursor(0, 0);
lcd.print("Introduce pass
");
delay(400);
lcd.setCursor(0, 0);
lcd.print("anterior
");
delay(400);
reset();
while(passUser[3]==NO_KEY){
leerIngreso(1);}
if (evaluar(1) == 1) {
");
lcd.setCursor(0, 0);
lcd.print("Introduce
");
delay(400);
lcd.setCursor(0, 0);
lcd.print("la pass nueva
");
delay(400);
reset();
while(passUser[3]==NO_KEY){
leerIngreso(1);
}
lcd.setCursor(0, 0);
lcd.print("Vuelve a intro
");
delay(400);
lcd.setCursor(0, 0);
lcd.print("cirla
");
delay(400);
lcd.setCursor(0, 0);
lcd.print(" **PASSWORD**
");
lcd.setCursor(5, 1);
lcd.print("____");
lcd.setCursor(0, 0);
i=0;
while(confirmPass[3]==NO_KEY){
leerIngreso(2);
}
if(evaluar(2)==1){
// funcion de EEPROM
for (int i = 0; i <= 3; i++) {
EEPROM.write(i, passUser[i]);
}
for (int i = 0; i <= 3; i++) {
password[i] = EEPROM.read(i);
}
lcd.setCursor(0, 0);
lcd.print("Contrasea cam ");
delay(400);
lcd.setCursor(0, 0);
lcd.print("biada
");
delay(400);
}
else{
lcd.setCursor(0, 0);
lcd.print("Error las pass ");
delay(400);
lcd.setCursor(0, 0);
lcd.print("no coinciden
");
delay(400);
}
}
A0
A1
A2
A3
A4
A5
ANALOG IN
PD7/AIN1
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD
~ PD6/AIN0
PD5/T1
~
D2
LED-BLUE
LED-GREEN
+88.8
7
8
9
4
5
6
1
2
3
ON
0
=
DIGITAL (~PWM)
A
ARDUINO UNO R3
D1
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
RESET
1121
ATMEGA328P-PU
AREF
PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
4
5
6
7
8
9
10
11
12
13
14
7
6
5
4
3
2
1
0
1
2
3
13
12
11
10
9
8
D0
D1
D2
D3
D4
D5
D6
D7
RS
RW
E
VSS
VDD
VEE
else {
msgError();
}
reset();
}
void passChange(){
for(int i=0;i<=3;i++){
password[i]=passUser[i];
}
LCD1
LM016L
ARD1