TREMENDO TP1

Dependencies:   mbed tsi_sensor MMA8451Q DHT11

main.cpp

Committer:
Jalle
Date:
2019-11-28
Revision:
0:5a4cb4e96e88

File content as of revision 0:5a4cb4e96e88:

#include "mbed.h"
#include "tsi_sensor.h"
#include "MMA8451Q.h"
#include "math.h"

#include "Dht11.h"






#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
PinName const SDA = PTE25;
PinName const SCL = PTE24;
#elif defined (TARGET_KL05Z)
PinName const SDA = PTB4;
PinName const SCL = PTB3;
#elif defined (TARGET_K20D50M)
PinName const SDA = PTB1;
PinName const SCL = PTB0;
#else
#error TARGET NOT DEFINED
#endif
#define M_PI 3.14159265358979323846

#define MMA8451_I2C_ADDRESS (0x1d<<1)

/* This defines will be replaced by PinNames soon */
#if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
#define ELEC0 9
#define ELEC1 10
#elif defined (TARGET_KL05Z)
#define ELEC0 9
#define ELEC1 8
#else
#error TARGET NOT DEFINED
#endif


//InterruptIn ent(PTD5);

DigitalIn enta(PTD5);
Dht11 sensor(PTD7);
AnalogIn   ain(A0);
AnalogIn cooler(PTB3);

unsigned int e=0,cuenta=2,hay=0,estado=0,paso=0,rpma=0,rpmb=0,caso=0,tiempo=9,d=0,c=0,acta=0,tempp=0,entad=0,cuentar=0,rpm=0,f=0,rpmr=1800,rpmd=200,maestro=0,rpmo=0,mostramos=0;
double arr=0.055,ard=0.000258;
double t;
double j;
double m;

Ticker jorge;
Ticker ernesto;
void funcion();
void tiemporpm();
PwmOut fan(A1);

int mostrar = 0;



int main(void)
{


    jorge.attach(&funcion, 0.01);
    ernesto.attach(&tiemporpm, 2);
    TSIAnalogSlider tsi(ELEC0, ELEC1, 100);



    while (true) {

        if(mostrar) {
            printf("RPM = %d \r\n",rpm);
            printf("temperatura: %d \r\n",f);
            mostrar = 0;
        }


        m=cooler;


        switch (caso) {
            default:
            case 0:
                if(entad==1) {
                    fan=(0.0055*((f - 20)/50.0)) + 0.000258;
                    if(rpm==0)
                        caso=1;
                    
                    




                } else {

                    fan=0.0008;
                    if(rpm==0)
                        caso=1;

                    
                    
                }
                break;



            case 1:
                fan=0.002;
                
                if(e==1) {
                    
                    caso=0;
                    e=0;

                }
                break;
        }
        switch (estado) {

            case 0:
                if(m>0.9) {
                    cuentar++;
                    estado=1;

                }
                break;
            case 1:
                if(m<0.1)
                    estado=0;
                break;


        }
        switch (tempp) {
            case 0:
                if(enta==0) {

                    tempp=1;
                    cuenta=0;
                }
                break;
            case 1:
                if(cuenta>=2) {
                    tempp=2;
                    if(entad==0)
                        entad=1;
                    else
                        entad=0;


                }
                break;
            case 2:
                if(enta==1) {
                    tempp=3;
                    cuenta=0;
                }
                break;
            case 3:
                if(cuenta>=2) {
                    tempp=0;


                }
                break;
        }


    }




}




void funcion()
{
    cuenta++;
}
void tiemporpm()
{
    t=fan;
    e=1;
    sensor.read();
    f=sensor.getCelsius();
    rpm=cuentar*30;
    cuentar=0;
    mostrar= 1;
}