Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Práctica 9
Práctica 9
Discusin
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.
Internet
manual de electrnica
proteus
if(EEPROM.read(4)!='Z'){
EEPROM.write(0,'1');
EEPROM.write(1,'2');
EEPROM.write(2,'3');
EEPROM.write(3,'4');
EEPROM.write(4,'Z');
}
for (int i = 0; i <= 4; i++) {
password[i] = EEPROM.read(i);
}
}//fin del setup
void loop() {
leerIngreso(1);
}
//
void leerIngreso(int a) {
ingreso = teclado.getKey();
if (ingreso != NO_KEY)
switch (ingreso) {
case 'A': // es como el "enter" para introducir la password
if(evaluar(1)==1)
correcto();
else{
msgError();
}
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(" ");
}
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);
}
}
}
}
}
AREF
}
1
VSS
13 2
PB5/SCK VDD
12 3
PB4/MISO VEE
RESET 11
~PB3/MOSI/OC2A
10 4
RS
else {
~ PB2/SS/OC1B
9 5
~ PB1/OC1A RW
reset();
8 6
PB0/ICP1/CLKO E
1121
7 7
PD7/AIN1 D0
6 8
A0 ~ PD6/AIN0 D1
PC0/ADC0 5 9
A1 ~ PD5/T1 D2
msgError();
ATMEGA328P-PU
PC1/ADC1 4 10
A2 PD4/T0/XCK D3
PC2/ADC2 3 11
A3 ~ PD3/INT1 D4
ANALOG IN
PC3/ADC3 2 12
A4 PD2/INT0 D5
PC4/ADC4/SDA 1 13
DIGITAL (~PWM)
A5 TX PD1/TXD D6
PC5/ADC5/SCL 0 14
RX PD0/RXD D7
void passChange(){
for(int i=0;i<=3;i++){
ARD1
LM016L
LCD1
D1
password[i]=passUser[i];
ARDUINO UNO R3
LED-BLUE
D2
LED-GREEN
Diagrama y simulacin en proteus
+88.8
B
A
D
C
ON
1
1
4
7
C
2
0
2
5
8
3
3
6
9
=
4