Dependencies: mbed FXOS8700Q TextLCD
Diff: main.cpp
- Revision:
- 0:421257dc3042
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Jun 11 02:45:08 2020 +0000 @@ -0,0 +1,149 @@ +#include "mbed.h" +#include "C12832.h" + + +DigitalOut L1(p8); +DigitalOut L2(p9); +DigitalOut L3(p10); +AnalogIn pot(p15); +C12832 lcd(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11); + + +//Contadores para cada dígito +int seg1=0; //Variable para contador de unidades de segundo +int seg2=0; //Variable para contador de décimas de segundo +int min1=0; //Variable para contador de unidades de minuto +int min2=0; //Variable para contador de décimas de minuto +int hor1=0; //Variable para contador de unidades de hora +int hor2=0; //Variable para contador de décimas de hora + +void reloj(){//Subrutina para generar reloj de 6 segmentos + lcd.locate(21,1);//Posicionamiento de las unidades de segundo + lcd.printf("%i", seg1); + lcd.locate(11,1);//Posicionamiento de las décimas de segundo + lcd.printf("%i",seg2); + lcd.locate(26,1);//Posicionamiento del doble punto + lcd.printf(":"); + lcd.locate(42,1);//Posicionamiento de las unidades de minuto + lcd.printf("%i",min1); + lcd.locate(32,1);//Posicionamiento de las décimas de minuto + lcd.printf("%i",min2); + lcd.locate(49,1);//Posicionamiento del punto doble + lcd.printf(":"); + lcd.locate(63,1);//Posicionamiento de las unidades de minuto + lcd.printf("%i",hor1); + lcd.locate(53,1);//Posicionamiento de las décimas de minuto + lcd.printf("%i",hor2); +} + + +int main() { + + printf("Proyecto, equipo 3\n"); + printf("Contraseña: 8569 \n"); + float x; + lcd.cls(); + while(1){ + x = 5*pot.read(); + + if(x<3.5){ + + lcd.cls(); //Limpia el LCD + lcd.locate(15, 15); //Posiciona en columna 2, fila 0) + lcd.printf("Tiempo de inactividad"); //Imprime en LCD "Reloj digital" + lcd.copy_to_lcd(); + + + + reloj(); //Llama a subrutina + + seg1++; //Inician el primer contador de unidades de segundo + wait(1); //Genera tiempo de un segundo + if (seg1==10){ + seg2++;//Contador décimas de segundo + seg1=0; + if (seg2==6){ + min1++;//Contador unidades de minuto + seg2=0; + if (min1==10){ + min2++;//Contador décimas de minuto + min1=0; + if(min2==6){ + hor1++;//Contador unidades de hora + min2=0; + if(hor1==10){ + hor2++;//Contador décimas de hora + hor1=0; + if((hor2==2)&&(hor1==4)){/*Cuando el contador llega + a 24hrs, este se reinicia*/ + hor2=0; + hor1=0; + } + } + } + } + } + } + } + + + if(x>=3.5){ + + int valida = 8569; + int clave; + + + lcd.cls(); + lcd.locate(1,1); + lcd.printf( "Introduzca su clave: "); + scanf("%i", &clave) ; + wait(1); + + if(clave != valida) { + + lcd.locate(1,15); + lcd.printf("No valida!"); + lcd.copy_to_lcd(); + L1 = 1; + wait(0.3); + L1 = 0; + wait(0.3); + L1 = 1; + wait(0.3); + L1 = 0; + wait(0.3); + L1 = 1; + wait(0.3); + L1 = 0; + lcd.cls(); + clave=0; + } + + if (clave == valida){ + lcd.locate(1,15); + lcd.printf("Aceptada."); + L2 = 1; + L3 = 1; + wait(0.3); + L2 = 0; + wait(0.3); + L2 = 1; + wait(0.3); + L2 = 0; + wait(0.3); + L2 = 1; + wait(0.3); + L2 = 0; + wait(15); + L3 = 0; + + } + if (clave == 0){ + lcd.cls(); + lcd.locate(1,1); + lcd.printf( "No ha introducido ninguna clave"); + + } + } +} +} \ No newline at end of file