Mon Hdz / Mbed 2 deprecated PF_EQ3

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
montse
Date:
Wed Jun 17 23:35:07 2020 +0000
Parent:
24:7f14b70fc9ef
Commit message:
Alarma de compuerta;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Apr 08 11:03:25 2019 +0100
+++ b/main.cpp	Wed Jun 17 23:35:07 2020 +0000
@@ -1,12 +1,218 @@
 #include "mbed.h"
-
-DigitalOut myled(LED1);
-
+#include "C12832.h"
+ //El siguiente codigo debe ser copiado y pegado en el simulador MBED
+ 
+DigitalOut L1(p8);
+DigitalOut L2(p9);
+DigitalOut L3(p10);
+AnalogIn pot(p15);
+PwmOut speaker(p21);
+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 hora
+    lcd.printf("%i", hor1);
+    lcd.locate(11,1);//Posicionamiento de las décimas de hora
+    lcd.printf("%i",hor2);
+    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 segundo
+    lcd.printf("%i",seg1);
+    lcd.locate(53,1);//Posicionamiento de las décimas de segundo
+    lcd.printf("%i",seg2);
+}
+ 
+ void play_tone(float frequency, float volume, int interval, int rest) {
+    speaker.period(1.0 / frequency);
+    speaker = volume;
+    wait(interval);
+    speaker = 0.0;
+    wait(rest);
+}
 int main() {
-    while(1) {
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-        wait(0.2);
+    
+     printf("Proyecto final, equipo 3\n");
+     printf("Código: 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;
+ int intentos;
+ 
+ 
+         lcd.cls();
+        lcd.locate(1,1);
+        lcd.printf( "Introduzca su clave: ");
+        wait(1);
+        scanf("%i", &clave) ;
+   wait(1);
+    
+    if(clave != valida) {
+            lcd.cls();
+            lcd.locate(1,1);
+            lcd.printf("No valida!");
+            lcd.copy_to_lcd();
+            
+            play_tone(125.0, 0.5, 1, 2);
+            play_tone(125.0, 0.5, 1, 2);
+            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;
+            intentos++;
+            if(intentos==3){ 
+                int p=0;
+                for (p; p<10; p++){
+            lcd.cls();
+            lcd.locate(1,1);
+            lcd.printf("Sistema bloqueado %d", p);
+            lcd.copy_to_lcd();
+            play_tone(125.0, 0.5, 1, 0.5);
+            play_tone(800.0, 0.5, 1, 0.5);
+            play_tone(125.0, 0.5, 1, 0.5);
+                }
+            }
+        } 
+    
+    if (clave == valida){
+        lcd.cls();
+        lcd.locate(1,1);
+        lcd.printf("Aceptada.");
+        lcd.locate(1,15);
+        lcd.printf("Abriendo compuerta...");
+         play_tone(800.0, 0.5, 0.7, 1);
+            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;
+            Abrir:
+        lcd.cls();
+        lcd.locate(20,1);
+        lcd.printf("Compuerta abierta");
+        lcd.locate(1,10);
+        lcd.printf( "Introduzca su clave");
+        lcd.locate(1,20);
+        lcd.printf( "para cerrar");
+        wait(1);
+        scanf("%i", &clave) ;
+        wait(1);
+        if (clave == valida){
+                lcd.cls();
+        lcd.locate(1,1);
+        lcd.printf("Aceptada.");
+        lcd.locate(1,15);
+        lcd.printf("Cerrando...");
+         play_tone(800.0, 0.5, 0.7, 1);
+            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;
+        lcd.cls();
+        lcd.locate(20,5);
+        lcd.printf("Compuerta cerrada");
+        wait(3);
+             }
+             else{ 
+                 lcd.cls();
+        lcd.locate(10,1);
+        lcd.printf("Incorrecto Vuelva");
+        lcd.locate(10,10);
+        lcd.printf(" a intentarlo");
+        wait(3);
+                 goto Abrir;
+             }
+    }
+ 
     }
 }
+}
\ No newline at end of file