TREMENDO TP1
Dependencies: mbed tsi_sensor MMA8451Q DHT11
main.cpp@0:5a4cb4e96e88, 2019-11-28 (annotated)
- 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?
User | Revision | Line number | New 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 |