Juan Manuel Rodriguez Aguado
/
Ejer01
SensorCooler
main.cpp@12:b4f6eed9c339, 2019-06-21 (annotated)
- Committer:
- Jumaroag
- Date:
- Fri Jun 21 02:54:11 2019 +0000
- Revision:
- 12:b4f6eed9c339
- Parent:
- 10:739d1a7a4b1b
Lin zabala Rodriguez Agudo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jumaroag | 12:b4f6eed9c339 | 1 | #include "mbed.h" |
Jumaroag | 12:b4f6eed9c339 | 2 | #include "DS1820.h"//Libreria para medir el sensor de temp |
Jumaroag | 12:b4f6eed9c339 | 3 | |
Jumaroag | 12:b4f6eed9c339 | 4 | //Defines Estados |
Jumaroag | 12:b4f6eed9c339 | 5 | #define Medicion_RPM_Max 0 |
Jumaroag | 12:b4f6eed9c339 | 6 | #define Lazo_Cerrado 1 |
Jumaroag | 12:b4f6eed9c339 | 7 | #define Lazo_Abierto 2 |
Jumaroag | 12:b4f6eed9c339 | 8 | |
Jumaroag | 12:b4f6eed9c339 | 9 | DigitalIn CoolerIn(PTE5);//Entrada sensor Hall |
Jumaroag | 12:b4f6eed9c339 | 10 | DigitalIn Pulsador(PTC0);//Entrada Pulsador |
Jumaroag | 12:b4f6eed9c339 | 11 | |
Jumaroag | 12:b4f6eed9c339 | 12 | AnalogIn Preset(PTB3);//Entrada analogica del preset |
Jumaroag | 12:b4f6eed9c339 | 13 | |
Jumaroag | 12:b4f6eed9c339 | 14 | DigitalOut azul(LED_BLUE); |
Jumaroag | 12:b4f6eed9c339 | 15 | DigitalOut rojo(LED_RED); |
Jumaroag | 12:b4f6eed9c339 | 16 | DigitalOut verde(LED_GREEN); |
Jumaroag | 12:b4f6eed9c339 | 17 | |
Jumaroag | 12:b4f6eed9c339 | 18 | PwmOut CoolerOut(PTE20);//La salida tiene que variar entre 1.0 y 0.0 |
Jumaroag | 12:b4f6eed9c339 | 19 | |
Jumaroag | 12:b4f6eed9c339 | 20 | unsigned char t=0,n=0,HabilitacionMedicion=0; |
Jumaroag | 12:b4f6eed9c339 | 21 | |
Jumaroag | 12:b4f6eed9c339 | 22 | Ticker seg,micro; |
Jumaroag | 12:b4f6eed9c339 | 23 | |
Jumaroag | 12:b4f6eed9c339 | 24 | void segundos(void);//mediciones y printf |
Jumaroag | 12:b4f6eed9c339 | 25 | void micro_segundos(void);//antirebote pulsador |
Jumaroag | 12:b4f6eed9c339 | 26 | unsigned int calculo_RPM(unsigned int pulsos);//funcion que calcula las RPM |
Jumaroag | 12:b4f6eed9c339 | 27 | |
Jumaroag | 12:b4f6eed9c339 | 28 | Serial serial(USBTX, USBRX);//Comunicacion con PC |
hudakz | 10:739d1a7a4b1b | 29 | |
hudakz | 7:8beaacebc82d | 30 | int main() |
hudakz | 7:8beaacebc82d | 31 | { |
Jumaroag | 12:b4f6eed9c339 | 32 | Pulsador.mode(PullUp);//Habilitamos pull up interno para el pulsador |
Jumaroag | 12:b4f6eed9c339 | 33 | |
Jumaroag | 12:b4f6eed9c339 | 34 | unsigned char Estado_General=0,habCoolerIn=0,antirebote_pulsador=0,habilitacion_pulsador=0,hab=0,hab_max=0; |
Jumaroag | 12:b4f6eed9c339 | 35 | unsigned int pulsos=0,RPM=0,RPM_Max=0,Velocidad=0; |
Jumaroag | 12:b4f6eed9c339 | 36 | float Temperatura=0,Valor_Preset=0,Velocidad_Real=1; |
Jumaroag | 12:b4f6eed9c339 | 37 | |
Jumaroag | 12:b4f6eed9c339 | 38 | DS1820 ds1820(PTC7);//Entre parentesis va el nombre del pin que recive los datos |
Jumaroag | 12:b4f6eed9c339 | 39 | ds1820.begin();//Inicio el sensor de Temp |
Jumaroag | 12:b4f6eed9c339 | 40 | |
Jumaroag | 12:b4f6eed9c339 | 41 | seg.attach(&segundos, 1);//Inicio Ticker 1 seg |
Jumaroag | 12:b4f6eed9c339 | 42 | micro.attach(µ_segundos, 0.1);//Inicio Ticker 100uS |
Jumaroag | 12:b4f6eed9c339 | 43 | |
Jumaroag | 12:b4f6eed9c339 | 44 | azul=1; |
Jumaroag | 12:b4f6eed9c339 | 45 | rojo=1; |
Jumaroag | 12:b4f6eed9c339 | 46 | verde=1; |
hudakz | 9:1d1c57840c7e | 47 | |
Jumaroag | 12:b4f6eed9c339 | 48 | while(1) |
Jumaroag | 12:b4f6eed9c339 | 49 | { |
Jumaroag | 12:b4f6eed9c339 | 50 | switch (Estado_General)//Maquina de estados General del Programa |
Jumaroag | 12:b4f6eed9c339 | 51 | { |
Jumaroag | 12:b4f6eed9c339 | 52 | default://En caso de un estado incierto voy a Medicion_RPM_Max que es el estado de reset |
Jumaroag | 12:b4f6eed9c339 | 53 | |
Jumaroag | 12:b4f6eed9c339 | 54 | case Medicion_RPM_Max://Mido las RPM maximas del cooler conectado |
Jumaroag | 12:b4f6eed9c339 | 55 | CoolerOut=1; |
Jumaroag | 12:b4f6eed9c339 | 56 | if(CoolerIn==1 && habCoolerIn==1)//cuento las vueltas del cooler |
Jumaroag | 12:b4f6eed9c339 | 57 | { |
Jumaroag | 12:b4f6eed9c339 | 58 | pulsos++; |
Jumaroag | 12:b4f6eed9c339 | 59 | habCoolerIn=0; |
Jumaroag | 12:b4f6eed9c339 | 60 | } |
Jumaroag | 12:b4f6eed9c339 | 61 | if(CoolerIn==0 && habCoolerIn==0) |
Jumaroag | 12:b4f6eed9c339 | 62 | { |
Jumaroag | 12:b4f6eed9c339 | 63 | habCoolerIn=1; |
Jumaroag | 12:b4f6eed9c339 | 64 | } |
Jumaroag | 12:b4f6eed9c339 | 65 | //Parpadeo Azul y Blanco |
Jumaroag | 12:b4f6eed9c339 | 66 | if(t%2==0 && hab==0) |
Jumaroag | 12:b4f6eed9c339 | 67 | { |
Jumaroag | 12:b4f6eed9c339 | 68 | printf("Midiendo...\n"); |
Jumaroag | 12:b4f6eed9c339 | 69 | azul=0; |
Jumaroag | 12:b4f6eed9c339 | 70 | rojo=1; |
Jumaroag | 12:b4f6eed9c339 | 71 | verde=1; |
Jumaroag | 12:b4f6eed9c339 | 72 | hab=1; |
Jumaroag | 12:b4f6eed9c339 | 73 | } |
Jumaroag | 12:b4f6eed9c339 | 74 | if(t%2!=0 && hab==1) |
Jumaroag | 12:b4f6eed9c339 | 75 | { |
Jumaroag | 12:b4f6eed9c339 | 76 | printf("Midiendo..\n"); |
Jumaroag | 12:b4f6eed9c339 | 77 | azul=0; |
Jumaroag | 12:b4f6eed9c339 | 78 | rojo=0; |
Jumaroag | 12:b4f6eed9c339 | 79 | verde=0; |
Jumaroag | 12:b4f6eed9c339 | 80 | hab=0; |
Jumaroag | 12:b4f6eed9c339 | 81 | } |
Jumaroag | 12:b4f6eed9c339 | 82 | |
Jumaroag | 12:b4f6eed9c339 | 83 | if(t==4 && hab_max==0)//Dejo un margen de tiempo para asegurar el regimen permanente |
Jumaroag | 12:b4f6eed9c339 | 84 | { |
Jumaroag | 12:b4f6eed9c339 | 85 | pulsos=0; |
Jumaroag | 12:b4f6eed9c339 | 86 | hab_max=1; |
Jumaroag | 12:b4f6eed9c339 | 87 | } |
Jumaroag | 12:b4f6eed9c339 | 88 | if(t==7 && hab_max==1)//cada 3 seg calculo las RPM |
Jumaroag | 12:b4f6eed9c339 | 89 | { |
Jumaroag | 12:b4f6eed9c339 | 90 | RPM_Max=calculo_RPM(pulsos); |
Jumaroag | 12:b4f6eed9c339 | 91 | pulsos=0; |
Jumaroag | 12:b4f6eed9c339 | 92 | hab_max=2; |
Jumaroag | 12:b4f6eed9c339 | 93 | } |
Jumaroag | 12:b4f6eed9c339 | 94 | if(t==10 && hab_max==2)//Lo hago 2 veces y promedio para estar seguro |
Jumaroag | 12:b4f6eed9c339 | 95 | { |
Jumaroag | 12:b4f6eed9c339 | 96 | RPM_Max=(RPM_Max + calculo_RPM(pulsos))/2;//Necesito este dato para los calculos que voy a realizar |
Jumaroag | 12:b4f6eed9c339 | 97 | pulsos=0; |
Jumaroag | 12:b4f6eed9c339 | 98 | t=0; |
Jumaroag | 12:b4f6eed9c339 | 99 | Estado_General=Lazo_Cerrado;//Termina la medicion asi q voy estado lazo cerrado |
Jumaroag | 12:b4f6eed9c339 | 100 | printf("===Medicion Finalizada===\n"); |
Jumaroag | 12:b4f6eed9c339 | 101 | printf("RPM Maxima: %i rpm\n",RPM_Max); |
Jumaroag | 12:b4f6eed9c339 | 102 | printf("\n======Lazo Cerrado======\n"); |
Jumaroag | 12:b4f6eed9c339 | 103 | azul=1; |
Jumaroag | 12:b4f6eed9c339 | 104 | rojo=1; |
Jumaroag | 12:b4f6eed9c339 | 105 | verde=1; |
Jumaroag | 12:b4f6eed9c339 | 106 | hab_max=0; |
Jumaroag | 12:b4f6eed9c339 | 107 | } |
Jumaroag | 12:b4f6eed9c339 | 108 | break; |
Jumaroag | 12:b4f6eed9c339 | 109 | //------------------------------------------------------------------------------------ |
Jumaroag | 12:b4f6eed9c339 | 110 | case Lazo_Cerrado://Controlo las RPM del cooler en funcion de la temperatura (en lazo cerrado) |
Jumaroag | 12:b4f6eed9c339 | 111 | verde=0; |
Jumaroag | 12:b4f6eed9c339 | 112 | if(CoolerIn==1 && habCoolerIn==1)//cuento las vueltas del cooler |
Jumaroag | 12:b4f6eed9c339 | 113 | { |
Jumaroag | 12:b4f6eed9c339 | 114 | pulsos++; |
Jumaroag | 12:b4f6eed9c339 | 115 | habCoolerIn=0; |
Jumaroag | 12:b4f6eed9c339 | 116 | } |
Jumaroag | 12:b4f6eed9c339 | 117 | if(CoolerIn==0 && habCoolerIn==0) |
Jumaroag | 12:b4f6eed9c339 | 118 | { |
Jumaroag | 12:b4f6eed9c339 | 119 | habCoolerIn=1; |
Jumaroag | 12:b4f6eed9c339 | 120 | } |
Jumaroag | 12:b4f6eed9c339 | 121 | |
Jumaroag | 12:b4f6eed9c339 | 122 | if(t==3)//cada 3 seg calculo las RPM y ajusto la velocidad de salida |
Jumaroag | 12:b4f6eed9c339 | 123 | { |
Jumaroag | 12:b4f6eed9c339 | 124 | RPM=calculo_RPM(pulsos); |
Jumaroag | 12:b4f6eed9c339 | 125 | pulsos=0; |
Jumaroag | 12:b4f6eed9c339 | 126 | t=0; |
Jumaroag | 12:b4f6eed9c339 | 127 | if(RPM<Velocidad && Velocidad_Real<1)//Control de RPM en lazo cerrado |
Jumaroag | 12:b4f6eed9c339 | 128 | { |
Jumaroag | 12:b4f6eed9c339 | 129 | if((Velocidad-RPM)<400 && Velocidad_Real<0.9) |
Jumaroag | 12:b4f6eed9c339 | 130 | Velocidad_Real=Velocidad_Real+0.01; |
Jumaroag | 12:b4f6eed9c339 | 131 | if((Velocidad-RPM)>400) |
Jumaroag | 12:b4f6eed9c339 | 132 | Velocidad_Real=Velocidad_Real+0.1; |
Jumaroag | 12:b4f6eed9c339 | 133 | } |
Jumaroag | 12:b4f6eed9c339 | 134 | if(RPM>Velocidad) |
Jumaroag | 12:b4f6eed9c339 | 135 | { |
Jumaroag | 12:b4f6eed9c339 | 136 | if((RPM-Velocidad)<400) |
Jumaroag | 12:b4f6eed9c339 | 137 | Velocidad_Real=Velocidad_Real-0.01; |
Jumaroag | 12:b4f6eed9c339 | 138 | if((RPM-Velocidad)>400) |
Jumaroag | 12:b4f6eed9c339 | 139 | Velocidad_Real=Velocidad_Real-0.1; |
Jumaroag | 12:b4f6eed9c339 | 140 | } |
Jumaroag | 12:b4f6eed9c339 | 141 | //Cada 3 seg imprimo por pantalla los datos |
Jumaroag | 12:b4f6eed9c339 | 142 | printf("\nTemperatura: %.2f\nRPM: %i\n",Temperatura,RPM); |
Jumaroag | 12:b4f6eed9c339 | 143 | printf("RPM Ideal: %i\nPWM Cooler: %.2f\n",Velocidad,Velocidad_Real); |
Jumaroag | 12:b4f6eed9c339 | 144 | } |
Jumaroag | 12:b4f6eed9c339 | 145 | |
Jumaroag | 12:b4f6eed9c339 | 146 | if(HabilitacionMedicion==0)//Cada 1 segundo mido el sensor y calculo la velocidad a la que deberia girar |
Jumaroag | 12:b4f6eed9c339 | 147 | { |
Jumaroag | 12:b4f6eed9c339 | 148 | ds1820.startConversion();//Empieza la conversion de temperatura |
Jumaroag | 12:b4f6eed9c339 | 149 | Temperatura=ds1820.read();//Lees el valor de temperatura |
Jumaroag | 12:b4f6eed9c339 | 150 | Velocidad=(Temperatura-20)*((RPM_Max-400)/50)+400;//Velocidad en RPM a la q deberia girar el cooler - Responde a la tabla de valores |
Jumaroag | 12:b4f6eed9c339 | 151 | if(Temperatura>=70)//Si es mayor a 70 se clava al max |
Jumaroag | 12:b4f6eed9c339 | 152 | { |
Jumaroag | 12:b4f6eed9c339 | 153 | Velocidad=RPM_Max; |
Jumaroag | 12:b4f6eed9c339 | 154 | } |
Jumaroag | 12:b4f6eed9c339 | 155 | if(Temperatura<=20)//Si es menor a 20 se clava en 400 RPM |
Jumaroag | 12:b4f6eed9c339 | 156 | { |
Jumaroag | 12:b4f6eed9c339 | 157 | Velocidad=400; |
Jumaroag | 12:b4f6eed9c339 | 158 | } |
Jumaroag | 12:b4f6eed9c339 | 159 | CoolerOut=Velocidad_Real;//Fijo un PWM al cooler en funcion a lo controlado |
Jumaroag | 12:b4f6eed9c339 | 160 | HabilitacionMedicion=1; |
Jumaroag | 12:b4f6eed9c339 | 161 | } |
Jumaroag | 12:b4f6eed9c339 | 162 | |
Jumaroag | 12:b4f6eed9c339 | 163 | //Pulsador - si lo puslo cambio de modo |
Jumaroag | 12:b4f6eed9c339 | 164 | if(Pulsador==0 && antirebote_pulsador==0 && habilitacion_pulsador==1) |
Jumaroag | 12:b4f6eed9c339 | 165 | { |
Jumaroag | 12:b4f6eed9c339 | 166 | n=0; |
Jumaroag | 12:b4f6eed9c339 | 167 | antirebote_pulsador=1; |
Jumaroag | 12:b4f6eed9c339 | 168 | } |
Jumaroag | 12:b4f6eed9c339 | 169 | if(n==1 && Pulsador==0 && habilitacion_pulsador==1)//Cambio de estado |
Jumaroag | 12:b4f6eed9c339 | 170 | { |
Jumaroag | 12:b4f6eed9c339 | 171 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 172 | habilitacion_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 173 | Estado_General=Lazo_Abierto; |
Jumaroag | 12:b4f6eed9c339 | 174 | t=0; |
Jumaroag | 12:b4f6eed9c339 | 175 | printf("\n======Lazo Abierto======\n"); |
Jumaroag | 12:b4f6eed9c339 | 176 | azul=1; |
Jumaroag | 12:b4f6eed9c339 | 177 | rojo=1; |
Jumaroag | 12:b4f6eed9c339 | 178 | verde=1; |
Jumaroag | 12:b4f6eed9c339 | 179 | } |
Jumaroag | 12:b4f6eed9c339 | 180 | if(n==1 && Pulsador==1 && habilitacion_pulsador==1) |
Jumaroag | 12:b4f6eed9c339 | 181 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 182 | if(Pulsador==1 && antirebote_pulsador==0) |
Jumaroag | 12:b4f6eed9c339 | 183 | { |
Jumaroag | 12:b4f6eed9c339 | 184 | n=0; |
Jumaroag | 12:b4f6eed9c339 | 185 | antirebote_pulsador=1; |
Jumaroag | 12:b4f6eed9c339 | 186 | } |
Jumaroag | 12:b4f6eed9c339 | 187 | if(n==1 && Pulsador==1) |
Jumaroag | 12:b4f6eed9c339 | 188 | { |
Jumaroag | 12:b4f6eed9c339 | 189 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 190 | habilitacion_pulsador=1; |
Jumaroag | 12:b4f6eed9c339 | 191 | } |
Jumaroag | 12:b4f6eed9c339 | 192 | if(n==1 && Pulsador==0) |
Jumaroag | 12:b4f6eed9c339 | 193 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 194 | |
Jumaroag | 12:b4f6eed9c339 | 195 | break; |
Jumaroag | 12:b4f6eed9c339 | 196 | //------------------------------------------------------------------------------------ |
Jumaroag | 12:b4f6eed9c339 | 197 | case Lazo_Abierto://La velocidad del cooler depende del Preset |
Jumaroag | 12:b4f6eed9c339 | 198 | rojo=0; |
Jumaroag | 12:b4f6eed9c339 | 199 | if(CoolerIn==1 && habCoolerIn==1)//cuento las vueltas del cooler |
Jumaroag | 12:b4f6eed9c339 | 200 | { |
Jumaroag | 12:b4f6eed9c339 | 201 | pulsos++; |
Jumaroag | 12:b4f6eed9c339 | 202 | habCoolerIn=0; |
Jumaroag | 12:b4f6eed9c339 | 203 | } |
Jumaroag | 12:b4f6eed9c339 | 204 | if(CoolerIn==0 && habCoolerIn==0) |
Jumaroag | 12:b4f6eed9c339 | 205 | { |
Jumaroag | 12:b4f6eed9c339 | 206 | habCoolerIn=1; |
Jumaroag | 12:b4f6eed9c339 | 207 | } |
Jumaroag | 12:b4f6eed9c339 | 208 | |
Jumaroag | 12:b4f6eed9c339 | 209 | if(t==3)//cada 3 seg calculo las RPM |
Jumaroag | 12:b4f6eed9c339 | 210 | { |
Jumaroag | 12:b4f6eed9c339 | 211 | RPM=calculo_RPM(pulsos); |
Jumaroag | 12:b4f6eed9c339 | 212 | pulsos=0; |
Jumaroag | 12:b4f6eed9c339 | 213 | t=0; |
Jumaroag | 12:b4f6eed9c339 | 214 | } |
Jumaroag | 12:b4f6eed9c339 | 215 | |
Jumaroag | 12:b4f6eed9c339 | 216 | if(HabilitacionMedicion==0)//Cada 1 segundo mido el preset y ajusto la salida |
Jumaroag | 12:b4f6eed9c339 | 217 | { |
Jumaroag | 12:b4f6eed9c339 | 218 | Valor_Preset=Preset.read(); |
Jumaroag | 12:b4f6eed9c339 | 219 | CoolerOut=Valor_Preset;//Ajusto la velocidad de salida |
Jumaroag | 12:b4f6eed9c339 | 220 | printf("\nPreset: %.0f\nRPM: %i\n",Valor_Preset*100,RPM);//Muestro los datos |
Jumaroag | 12:b4f6eed9c339 | 221 | HabilitacionMedicion=1; |
Jumaroag | 12:b4f6eed9c339 | 222 | } |
Jumaroag | 12:b4f6eed9c339 | 223 | |
Jumaroag | 12:b4f6eed9c339 | 224 | //Pulsador - si lo pulso cambio a lazo cerrado |
Jumaroag | 12:b4f6eed9c339 | 225 | if(Pulsador==0 && antirebote_pulsador==0 && habilitacion_pulsador==1) |
Jumaroag | 12:b4f6eed9c339 | 226 | { |
Jumaroag | 12:b4f6eed9c339 | 227 | n=0; |
Jumaroag | 12:b4f6eed9c339 | 228 | antirebote_pulsador=1; |
Jumaroag | 12:b4f6eed9c339 | 229 | } |
Jumaroag | 12:b4f6eed9c339 | 230 | if(n==1 && Pulsador==0 && habilitacion_pulsador==1)//Cambio de estado |
Jumaroag | 12:b4f6eed9c339 | 231 | { |
Jumaroag | 12:b4f6eed9c339 | 232 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 233 | habilitacion_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 234 | Estado_General=Lazo_Cerrado; |
Jumaroag | 12:b4f6eed9c339 | 235 | t=0; |
Jumaroag | 12:b4f6eed9c339 | 236 | printf("\n======Lazo Cerrado======\n"); |
Jumaroag | 12:b4f6eed9c339 | 237 | azul=1; |
Jumaroag | 12:b4f6eed9c339 | 238 | rojo=1; |
Jumaroag | 12:b4f6eed9c339 | 239 | verde=1; |
Jumaroag | 12:b4f6eed9c339 | 240 | } |
Jumaroag | 12:b4f6eed9c339 | 241 | if(n==1 && Pulsador==1 && habilitacion_pulsador==1) |
Jumaroag | 12:b4f6eed9c339 | 242 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 243 | if(Pulsador==1 && antirebote_pulsador==0) |
Jumaroag | 12:b4f6eed9c339 | 244 | { |
Jumaroag | 12:b4f6eed9c339 | 245 | n=0; |
Jumaroag | 12:b4f6eed9c339 | 246 | antirebote_pulsador=1; |
Jumaroag | 12:b4f6eed9c339 | 247 | } |
Jumaroag | 12:b4f6eed9c339 | 248 | if(n==1 && Pulsador==1) |
Jumaroag | 12:b4f6eed9c339 | 249 | { |
Jumaroag | 12:b4f6eed9c339 | 250 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 251 | habilitacion_pulsador=1; |
Jumaroag | 12:b4f6eed9c339 | 252 | } |
Jumaroag | 12:b4f6eed9c339 | 253 | if(n==1 && Pulsador==0) |
Jumaroag | 12:b4f6eed9c339 | 254 | antirebote_pulsador=0; |
Jumaroag | 12:b4f6eed9c339 | 255 | |
Jumaroag | 12:b4f6eed9c339 | 256 | break; |
Jumaroag | 12:b4f6eed9c339 | 257 | |
Jumaroag | 12:b4f6eed9c339 | 258 | }//SW |
Jumaroag | 12:b4f6eed9c339 | 259 | }//while |
Jumaroag | 12:b4f6eed9c339 | 260 | }//main |
hudakz | 10:739d1a7a4b1b | 261 | |
Jumaroag | 12:b4f6eed9c339 | 262 | void segundos(void) |
Jumaroag | 12:b4f6eed9c339 | 263 | { |
Jumaroag | 12:b4f6eed9c339 | 264 | t++; |
Jumaroag | 12:b4f6eed9c339 | 265 | HabilitacionMedicion=0; |
Jumaroag | 12:b4f6eed9c339 | 266 | } |
hudakz | 10:739d1a7a4b1b | 267 | |
Jumaroag | 12:b4f6eed9c339 | 268 | void micro_segundos(void) |
Jumaroag | 12:b4f6eed9c339 | 269 | { |
Jumaroag | 12:b4f6eed9c339 | 270 | if(n==0) |
Jumaroag | 12:b4f6eed9c339 | 271 | n++; |
Jumaroag | 12:b4f6eed9c339 | 272 | } |
hudakz | 10:739d1a7a4b1b | 273 | |
Jumaroag | 12:b4f6eed9c339 | 274 | unsigned int calculo_RPM(unsigned int pulsos) |
Jumaroag | 12:b4f6eed9c339 | 275 | { |
Jumaroag | 12:b4f6eed9c339 | 276 | return (pulsos*10);//Pulsos * 10 porque medimos durante 3 seg y cada 2 pulsos 1 vuelta |
Jumaroag | 12:b4f6eed9c339 | 277 | } |