Maestrante: Edinson Caceres. En este deber se avanzaran partes del algoritmo del Proyecto Final

Dependencies:   mbed HCSR04

Para este proyecto tenemos como objetivo lo siguiente:

Realizar un datalloger serial el cual nos permita receptar datos de temperatura y distancia.

Los elementos y sensores a usar son:

- Sensor de temperatura LM35 - Sensor ultrasonico HC-SR04 para media distancia - Sensor ultrasonico HC-SR04 para media distancia - Discovey board STM32F4 - Piout STM32F4 - Protoboard

https://os.mbed.com/media/uploads/edinson/lm35.jpg https://os.mbed.com/media/uploads/edinson/hc-sr04.jpg https://os.mbed.com/media/uploads/edinson/stm32f4-discovery-shield.jpg https://os.mbed.com/media/uploads/edinson/proboard.jpg

Se incorpora dos señales booleanas , el cual nos dará una alarma cuando la señas sea menos de 20cm y se encenderá otro leds cunado la distancia sea mayor a 20 cm.

Lecturas ≤ 20cm

https://os.mbed.com/media/uploads/edinson/menor_20cm.png https://os.mbed.com/media/uploads/edinson/seria_menor_20cm.png

Lecturas ≥ 20cm

https://os.mbed.com/media/uploads/edinson/mayor_20cm.png https://os.mbed.com/media/uploads/edinson/seria_mayor_20cm.png

main.cpp

Committer:
edinson
Date:
2020-02-08
Revision:
4:7acdfc37d710
Parent:
3:c48f9939cbac

File content as of revision 4:7acdfc37d710:

#include "mbed.h"
#include "HCSR04.h"// Biblioteca del sensor ultrasonico

Timer t; //declaracion de contador
AnalogIn sensor(PB_0);               //entrada analogica para sensor de temperatura
HCSR04 sensord(PB_6,PB_7);            //Declaración del sensor ultrasonico y de los puertos de entrada a trigger y echo
Serial device(PA_2,PA_3);             //comunicacion seria
DigitalOut myled (PD_14);
DigitalOut myled2 (PD_13);

float value; //variable para datos de temparatura
float volt; //variable para datos de voltaje


int main() {   //Declaración de la función principal
    device.baud(115200); 
    //device.printf("Start\n");
    
    while(1) {  // inicio de bucle,Condicional establecido para que siempre sea verdadero
    int d= sensord.distance(1); // comando para un numero largo de bits
    if (d<20) { //condicional de led
    myled=1;
    myled2=0;
    }
    else if (d>=20){
    myled=0;
    myled2=1;
    }
  
     value = (((sensor.read()*5000)/10)-20); // calculo para prsentar tempertura
     volt = (value*10);// calculo para presentar voltaje de sensor
     
     t.start(); // inicio de contador  
    
     device.printf ("Temp= %2.2f C, ", value);  //escribir dato de temperatura
     device.printf ("volt= %2.2f mv, ", volt); //escribir dato de voltaje sensor
     device.printf ("D= %d cm, ",d); // comando de impresion para mostra
     device.printf ("time= %d ms, \r\n", t.read_ms()); // escribir datos de tiempo de lectura
     t.stop(); //pausa de contador
     
     wait (2);
    
     }
}