Version Beta para la FRDM-KL46Z del original de Arduino Uno

Dependencies:   mbed TextLCD

Revision:
10:fb06357df7d7
Parent:
9:5d4a4c23d7c5
Child:
12:e134e66034c7
Child:
15:c0bb10aadebc
--- a/main.cpp	Wed Oct 31 00:49:20 2018 +0000
+++ b/main.cpp	Wed Oct 31 07:54:45 2018 +0000
@@ -143,17 +143,17 @@
 *      5V       5V  (red)
 *      GND      GND (black)
 ***************************************************/
- // Host PC Communication channels
+// Host PC Communication channels
 Serial      Terminal(USBTX, USBRX);         // Tx, Rx
 //Serial      Terminal(PTA2,PTA1);          // Terminal Serial
-//Serial      Terminal(PTE1, PTE0);         // Tx, Rx Using MAX3232 or BlueTooth
+//Serial      Terminal(PTE0, PTE1);         // Tx, Rx Using MAX3232 or BlueTooth
+
+// Bluetooth Communication support
+Serial   bluetooth(PTE0, PTE1);             // Tx, Rx
 
 // I2C Communication
 I2C         i2c_LCD(PTC2,PTC1);             // SDA, SCL
 
-// Bluetooth Communication support
-//Serial   bluetooth(PTE1, PTE0);         // Tx, Rx
-
 // SPI Communication
 //SPI         spi_LCD(PTD6,PTD7,PTD5,PTD4);   // MOSI, MISO, SCLK, SSEL
 
@@ -163,7 +163,7 @@
 TextLCD_I2C lcd(&i2c_LCD, 0x7E, TextLCD::LCD20x4);                   // I2C bus, PCF8574A Arduino Shield, LCD Type
 
 //librerias del DHT22  
-DHT dht(PTA13, DHT22);              // DHT_PIN, DHT_TIPO
+DHT dht(PTA13, DHT22);              // DHT_PIN, DHT_TIPO (DHT11, DHT22)
 
 /*
 ** ===================================================================
@@ -259,7 +259,13 @@
 char     Celcius = 223;
 int16_t  NInterrupciones;
 int16_t  DC;
-float    DUTYCYCLE=0.7071;    //Valor RMS para el PWM
+float    DUTYCYCLE=0.7071;  //Valor RMS para el PWM
+uint8_t  buf[128];          //Buffer para Transmisión y Recepción Serial
+/* -------------------------------------------------------------------
+**   Variables para Códigos de Error.
+**
+**   Variables que guardan el estado de los dispositivos y sensores.
+** -------------------------------------------------------------------*/
 int16_t  error_code;          //Retorno del Código de Error de las funciones    
 
 /*
@@ -373,6 +379,13 @@
 /* Inicia la comunicación la Terminal */  /* 115200 Bauds, 8 bits, 1 stop, N parity */
   Terminal.baud(115200);                  // Se inicia la comunicación serial.    
   Terminal.printf(" System is Wake Up!.\n\r"); 
+/* Inicialización del Bluetooth */      
+  bluetooth.baud(115200);                  // Se inicia la comunicación Bluetooth.  
+//  bluetooth.scanf("%s", buf);             //Lee un caracter desde el Bluetooth
+//  bluetooth.printf("recv: %s", buf);      //Hace eco al Bluetooth
+//  Terminal.printf("recv: %s\r\n", buf);   //Imprime en la terminal el caracter recibido
+  bluetooth.printf("Bluetooth Starting OK! ... \n\r"); 
+  Terminal.printf("Bluetooth Starting OK! ... \n\r");       
 /* Prueba del Buzzer */    
   Terminal.printf("Testing Buzzer... \n\r");   
     PIN_BUZZER = Buzz_On;
@@ -426,9 +439,9 @@
 // They are defined by a 5x7 bitpattern. 
   lcd.setUDC(0, (char *) udc_0);        // Show |>
   lcd.putc(0);   
-  printf("\rLCD Starting OK! ... \n\r"); 
+  Terminal.printf("LCD Starting OK! ... \n\r"); 
   wait_ms(500);
-  printf("\rPrinting Intro \n\r"); 
+  Terminal.printf("\rPrinting Intro \n\r"); 
   Intro();                              // Se ejecuta la Introducción en la LCD.
   uint16_t NInterrupciones = 0;         //Contador de Interrupciones (util para ahorro de energía).
 }
@@ -807,8 +820,8 @@
         while (!PuertaAb && Deshidratando && !Bandera) {   //Mientras la puerta este cerrada y la variable Desidratando sea verdadera.
         error_code=dht.readData();          //Lee el Sensor de Humedad y Temperatura
         if (error_code != 0) { 
-            printf("\rError Reading DHT   ");           //No se puedo leer DHT
-            printf("\r\nPlease Check Sensor !!! \n\r"); //Envia mensaje de error a la Terminal
+            Terminal.printf("\rError Reading DHT   ");           //No se puedo leer DHT
+            Terminal.printf("\r\nPlease Check Sensor !!! \n\r"); //Envia mensaje de error a la Terminal
             lcd.cls();                      //Limpiamos LCD.
             lcd.locate(1, 0);               //Coloca el cursor al inicio de la fila.
             lcd.printf("Error de Sensores");//Encia mensaje de Error.
@@ -817,30 +830,30 @@
             PIN_BUZZER = Buzz_On;           //Enciende el buzzer 
             wait(10);                       //Espera 10 seg
           }
-          printf("\rReading DHT ... ");
-          printf("\r\nError Code: %d \r\n", error_code);  
+          Terminal.printf("\rReading DHT ... ");
+          Terminal.printf("\r\nError Code: %d \r\n", error_code);  
           h = dht.ReadHumidity();                          //Se lee la humedad
-          printf("\rHumedad: %.2f ", h);            
+          Terminal.printf("\rHumedad: %.2f ", h);            
           t = dht.ReadTemperature(CELCIUS);                //Se lee la temperatura: CELCIUS=0,FARENHEIT=1,KELVIN=2
-          printf("\tTemperatura: %.2f \r\n\v\v\v\v", t);            
+          Terminal.printf("\tTemperatura: %.2f \r\n\v\v\v\v", t);            
           Checar_Calefactor(Temp[FrutaD]);                 //Verifica sesores y enciende componentes.
           Imprime_InfoSensores();                          //Impresion de informacion de sensores,
           Imprime_Tiempo(7, 3);                            //Impresion de Tiempo.
           if (Hor == 5 && Min == 30) {                     //Tiempo Transcurrido es igual a 5:30:XX .
             Bandera = 1;                                   // SI - Termina el proceso.
-            printf("\rDemasiado Tiempo de Deshidratacion ...\n\r");
-            printf("\rTiempo Terminado !!! \n\r");  
+            Terminal.printf("\rDemasiado Tiempo de Deshidratacion ...\n\r");
+            Terminal.printf("\rTiempo Terminado !!! \n\r");  
            }
         }
       }
     }
     //Deshidratacion terminada.
-    printf("\rDeshidratacion Terminada  \n\r");
-    printf("\rTiempo Terminado !!! \n\r");      
+    Terminal.printf("\rDeshidratacion Terminada  \n\r");
+    Terminal.printf("\rTiempo Terminado !!! \n\r");      
     TF = t;                                             //Almacenamos el valor final de temperatura.
     HF = h;                                             //Almacenamos el valor final de humedad.
-    printf("\rHumedad Final: %.2f ", HF);                     //Humedad Final
-    printf("\tTemperatura Interna: %.2f \r\n\v\v\v\v", TF);     //Temperatura Final
+    Terminal.printf("\rHumedad Final: %.2f ", HF);                     //Humedad Final
+    Terminal.printf("\tTemperatura Interna: %.2f \r\n\v\v\v\v", TF);     //Temperatura Final
     Deshidratando = 0;                                  //Indica que termina la deshidratacion.
     Apagar_Calefactor();                                //Apaga el calefactor.
     Reporte_Des();                                      //Muestra reporte de deshidratacion.
@@ -913,8 +926,8 @@
 */
 bool Puerta_Abierta() {
   Init_Var();
-  printf("\r\nPuerta Abierta ");
-  printf("\r\nProceso Suspendido !!! \r\n");  
+  Terminal.printf("\r\nPuerta Abierta ");
+  Terminal.printf("\r\nProceso Suspendido !!! \r\n");  
   CalefactorOFF();
   lcd.setBacklight(TextLCD::LightOn);       // Enciende la Iluminación de Fondo
   lcd.setCursor(TextLCD::CurOff_BlkOff);    // Apaga el Cursor  
@@ -1006,7 +1019,7 @@
     t = dht.ReadTemperature(CELCIUS);  //Se lee la temperatura: CELCIUS=0, FARENHEIT=1, KELVIN=2
     lcd.locate(13, 3);
     lcd.printf("%.2f",t);              //Temperatura interna del Deshidratador
-    printf("\rEnfriando, Temperatura: %.2f",t);   //
+    Terminal.printf("\rEnfriando, Temperatura: %.2f",t);   //
     wait_ms(1000);                     //Espera 1 segundo
      } 
   while (t > 37);                      //Hasta que la Temperatura Llega a 37°C