Antulio Morgado
/
FRDM-KL46Z_Deshidratador
Version Beta para la FRDM-KL46Z del original de Arduino Uno
Diff: main.cpp
- 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