TREMENDO TP1

Dependencies:   mbed tsi_sensor MMA8451Q DHT11

Committer:
Jalle
Date:
Thu Nov 28 03:39:56 2019 +0000
Revision:
0:5a4cb4e96e88
COMMIT TENGO SUENO PERO QUIERO APROBAR EMBEBIDOS; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jalle 0:5a4cb4e96e88 1 #include "mbed.h"
Jalle 0:5a4cb4e96e88 2 #include "tsi_sensor.h"
Jalle 0:5a4cb4e96e88 3 #include "MMA8451Q.h"
Jalle 0:5a4cb4e96e88 4 #include "math.h"
Jalle 0:5a4cb4e96e88 5
Jalle 0:5a4cb4e96e88 6 #include "Dht11.h"
Jalle 0:5a4cb4e96e88 7
Jalle 0:5a4cb4e96e88 8
Jalle 0:5a4cb4e96e88 9
Jalle 0:5a4cb4e96e88 10
Jalle 0:5a4cb4e96e88 11
Jalle 0:5a4cb4e96e88 12
Jalle 0:5a4cb4e96e88 13 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
Jalle 0:5a4cb4e96e88 14 PinName const SDA = PTE25;
Jalle 0:5a4cb4e96e88 15 PinName const SCL = PTE24;
Jalle 0:5a4cb4e96e88 16 #elif defined (TARGET_KL05Z)
Jalle 0:5a4cb4e96e88 17 PinName const SDA = PTB4;
Jalle 0:5a4cb4e96e88 18 PinName const SCL = PTB3;
Jalle 0:5a4cb4e96e88 19 #elif defined (TARGET_K20D50M)
Jalle 0:5a4cb4e96e88 20 PinName const SDA = PTB1;
Jalle 0:5a4cb4e96e88 21 PinName const SCL = PTB0;
Jalle 0:5a4cb4e96e88 22 #else
Jalle 0:5a4cb4e96e88 23 #error TARGET NOT DEFINED
Jalle 0:5a4cb4e96e88 24 #endif
Jalle 0:5a4cb4e96e88 25 #define M_PI 3.14159265358979323846
Jalle 0:5a4cb4e96e88 26
Jalle 0:5a4cb4e96e88 27 #define MMA8451_I2C_ADDRESS (0x1d<<1)
Jalle 0:5a4cb4e96e88 28
Jalle 0:5a4cb4e96e88 29 /* This defines will be replaced by PinNames soon */
Jalle 0:5a4cb4e96e88 30 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
Jalle 0:5a4cb4e96e88 31 #define ELEC0 9
Jalle 0:5a4cb4e96e88 32 #define ELEC1 10
Jalle 0:5a4cb4e96e88 33 #elif defined (TARGET_KL05Z)
Jalle 0:5a4cb4e96e88 34 #define ELEC0 9
Jalle 0:5a4cb4e96e88 35 #define ELEC1 8
Jalle 0:5a4cb4e96e88 36 #else
Jalle 0:5a4cb4e96e88 37 #error TARGET NOT DEFINED
Jalle 0:5a4cb4e96e88 38 #endif
Jalle 0:5a4cb4e96e88 39
Jalle 0:5a4cb4e96e88 40
Jalle 0:5a4cb4e96e88 41 //InterruptIn ent(PTD5);
Jalle 0:5a4cb4e96e88 42
Jalle 0:5a4cb4e96e88 43 DigitalIn enta(PTD5);
Jalle 0:5a4cb4e96e88 44 Dht11 sensor(PTD7);
Jalle 0:5a4cb4e96e88 45 AnalogIn ain(A0);
Jalle 0:5a4cb4e96e88 46 AnalogIn cooler(PTB3);
Jalle 0:5a4cb4e96e88 47
Jalle 0:5a4cb4e96e88 48 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;
Jalle 0:5a4cb4e96e88 49 double arr=0.055,ard=0.000258;
Jalle 0:5a4cb4e96e88 50 double t;
Jalle 0:5a4cb4e96e88 51 double j;
Jalle 0:5a4cb4e96e88 52 double m;
Jalle 0:5a4cb4e96e88 53
Jalle 0:5a4cb4e96e88 54 Ticker jorge;
Jalle 0:5a4cb4e96e88 55 Ticker ernesto;
Jalle 0:5a4cb4e96e88 56 void funcion();
Jalle 0:5a4cb4e96e88 57 void tiemporpm();
Jalle 0:5a4cb4e96e88 58 PwmOut fan(A1);
Jalle 0:5a4cb4e96e88 59
Jalle 0:5a4cb4e96e88 60 int mostrar = 0;
Jalle 0:5a4cb4e96e88 61
Jalle 0:5a4cb4e96e88 62
Jalle 0:5a4cb4e96e88 63
Jalle 0:5a4cb4e96e88 64 int main(void)
Jalle 0:5a4cb4e96e88 65 {
Jalle 0:5a4cb4e96e88 66
Jalle 0:5a4cb4e96e88 67
Jalle 0:5a4cb4e96e88 68 jorge.attach(&funcion, 0.01);
Jalle 0:5a4cb4e96e88 69 ernesto.attach(&tiemporpm, 2);
Jalle 0:5a4cb4e96e88 70 TSIAnalogSlider tsi(ELEC0, ELEC1, 100);
Jalle 0:5a4cb4e96e88 71
Jalle 0:5a4cb4e96e88 72
Jalle 0:5a4cb4e96e88 73
Jalle 0:5a4cb4e96e88 74 while (true) {
Jalle 0:5a4cb4e96e88 75
Jalle 0:5a4cb4e96e88 76 if(mostrar) {
Jalle 0:5a4cb4e96e88 77 printf("RPM = %d \r\n",rpm);
Jalle 0:5a4cb4e96e88 78 printf("temperatura: %d \r\n",f);
Jalle 0:5a4cb4e96e88 79 mostrar = 0;
Jalle 0:5a4cb4e96e88 80 }
Jalle 0:5a4cb4e96e88 81
Jalle 0:5a4cb4e96e88 82
Jalle 0:5a4cb4e96e88 83 m=cooler;
Jalle 0:5a4cb4e96e88 84
Jalle 0:5a4cb4e96e88 85
Jalle 0:5a4cb4e96e88 86 switch (caso) {
Jalle 0:5a4cb4e96e88 87 default:
Jalle 0:5a4cb4e96e88 88 case 0:
Jalle 0:5a4cb4e96e88 89 if(entad==1) {
Jalle 0:5a4cb4e96e88 90 fan=(0.0055*((f - 20)/50.0)) + 0.000258;
Jalle 0:5a4cb4e96e88 91 if(rpm==0)
Jalle 0:5a4cb4e96e88 92 caso=1;
Jalle 0:5a4cb4e96e88 93
Jalle 0:5a4cb4e96e88 94
Jalle 0:5a4cb4e96e88 95
Jalle 0:5a4cb4e96e88 96
Jalle 0:5a4cb4e96e88 97
Jalle 0:5a4cb4e96e88 98
Jalle 0:5a4cb4e96e88 99 } else {
Jalle 0:5a4cb4e96e88 100
Jalle 0:5a4cb4e96e88 101 fan=0.0008;
Jalle 0:5a4cb4e96e88 102 if(rpm==0)
Jalle 0:5a4cb4e96e88 103 caso=1;
Jalle 0:5a4cb4e96e88 104
Jalle 0:5a4cb4e96e88 105
Jalle 0:5a4cb4e96e88 106
Jalle 0:5a4cb4e96e88 107 }
Jalle 0:5a4cb4e96e88 108 break;
Jalle 0:5a4cb4e96e88 109
Jalle 0:5a4cb4e96e88 110
Jalle 0:5a4cb4e96e88 111
Jalle 0:5a4cb4e96e88 112 case 1:
Jalle 0:5a4cb4e96e88 113 fan=0.002;
Jalle 0:5a4cb4e96e88 114
Jalle 0:5a4cb4e96e88 115 if(e==1) {
Jalle 0:5a4cb4e96e88 116
Jalle 0:5a4cb4e96e88 117 caso=0;
Jalle 0:5a4cb4e96e88 118 e=0;
Jalle 0:5a4cb4e96e88 119
Jalle 0:5a4cb4e96e88 120 }
Jalle 0:5a4cb4e96e88 121 break;
Jalle 0:5a4cb4e96e88 122 }
Jalle 0:5a4cb4e96e88 123 switch (estado) {
Jalle 0:5a4cb4e96e88 124
Jalle 0:5a4cb4e96e88 125 case 0:
Jalle 0:5a4cb4e96e88 126 if(m>0.9) {
Jalle 0:5a4cb4e96e88 127 cuentar++;
Jalle 0:5a4cb4e96e88 128 estado=1;
Jalle 0:5a4cb4e96e88 129
Jalle 0:5a4cb4e96e88 130 }
Jalle 0:5a4cb4e96e88 131 break;
Jalle 0:5a4cb4e96e88 132 case 1:
Jalle 0:5a4cb4e96e88 133 if(m<0.1)
Jalle 0:5a4cb4e96e88 134 estado=0;
Jalle 0:5a4cb4e96e88 135 break;
Jalle 0:5a4cb4e96e88 136
Jalle 0:5a4cb4e96e88 137
Jalle 0:5a4cb4e96e88 138 }
Jalle 0:5a4cb4e96e88 139 switch (tempp) {
Jalle 0:5a4cb4e96e88 140 case 0:
Jalle 0:5a4cb4e96e88 141 if(enta==0) {
Jalle 0:5a4cb4e96e88 142
Jalle 0:5a4cb4e96e88 143 tempp=1;
Jalle 0:5a4cb4e96e88 144 cuenta=0;
Jalle 0:5a4cb4e96e88 145 }
Jalle 0:5a4cb4e96e88 146 break;
Jalle 0:5a4cb4e96e88 147 case 1:
Jalle 0:5a4cb4e96e88 148 if(cuenta>=2) {
Jalle 0:5a4cb4e96e88 149 tempp=2;
Jalle 0:5a4cb4e96e88 150 if(entad==0)
Jalle 0:5a4cb4e96e88 151 entad=1;
Jalle 0:5a4cb4e96e88 152 else
Jalle 0:5a4cb4e96e88 153 entad=0;
Jalle 0:5a4cb4e96e88 154
Jalle 0:5a4cb4e96e88 155
Jalle 0:5a4cb4e96e88 156 }
Jalle 0:5a4cb4e96e88 157 break;
Jalle 0:5a4cb4e96e88 158 case 2:
Jalle 0:5a4cb4e96e88 159 if(enta==1) {
Jalle 0:5a4cb4e96e88 160 tempp=3;
Jalle 0:5a4cb4e96e88 161 cuenta=0;
Jalle 0:5a4cb4e96e88 162 }
Jalle 0:5a4cb4e96e88 163 break;
Jalle 0:5a4cb4e96e88 164 case 3:
Jalle 0:5a4cb4e96e88 165 if(cuenta>=2) {
Jalle 0:5a4cb4e96e88 166 tempp=0;
Jalle 0:5a4cb4e96e88 167
Jalle 0:5a4cb4e96e88 168
Jalle 0:5a4cb4e96e88 169 }
Jalle 0:5a4cb4e96e88 170 break;
Jalle 0:5a4cb4e96e88 171 }
Jalle 0:5a4cb4e96e88 172
Jalle 0:5a4cb4e96e88 173
Jalle 0:5a4cb4e96e88 174 }
Jalle 0:5a4cb4e96e88 175
Jalle 0:5a4cb4e96e88 176
Jalle 0:5a4cb4e96e88 177
Jalle 0:5a4cb4e96e88 178
Jalle 0:5a4cb4e96e88 179 }
Jalle 0:5a4cb4e96e88 180
Jalle 0:5a4cb4e96e88 181
Jalle 0:5a4cb4e96e88 182
Jalle 0:5a4cb4e96e88 183
Jalle 0:5a4cb4e96e88 184 void funcion()
Jalle 0:5a4cb4e96e88 185 {
Jalle 0:5a4cb4e96e88 186 cuenta++;
Jalle 0:5a4cb4e96e88 187 }
Jalle 0:5a4cb4e96e88 188 void tiemporpm()
Jalle 0:5a4cb4e96e88 189 {
Jalle 0:5a4cb4e96e88 190 t=fan;
Jalle 0:5a4cb4e96e88 191 e=1;
Jalle 0:5a4cb4e96e88 192 sensor.read();
Jalle 0:5a4cb4e96e88 193 f=sensor.getCelsius();
Jalle 0:5a4cb4e96e88 194 rpm=cuentar*30;
Jalle 0:5a4cb4e96e88 195 cuentar=0;
Jalle 0:5a4cb4e96e88 196 mostrar= 1;
Jalle 0:5a4cb4e96e88 197 }
Jalle 0:5a4cb4e96e88 198