Jorge Rodolfo Muñoz
/
Medidor_voltaje_resistencia
codigo para medir voltaje y resistencias mediante el microcontrolador Freedom KL25Z
main.cpp
- Committer:
- rodomnz
- Date:
- 2014-03-05
- Revision:
- 0:85039ee1746a
File content as of revision 0:85039ee1746a:
/*Laboratorio 3: Codigo para un medidor de voltaje de 0 V a 28 V, y de resistencias, utilizando el microcontrolador Freedom KL25Z, para la materia de informatica industrial TECNOLOGICO DE MONTERREY CAMPUS GUADALAJARA realizada por: Jorge Rodolfo Muñoz Zuñiga A01227893 - Ismael Davila Martin A01227911 */ #include "mbed.h" //DECLARACION DE VARIABLES DigitalOut myled(LED1); AnalogIn vout(PTB0);//entrada analogico que lee el voltaje AnalogIn res_analogic(PTB1);//entrada analogica que lee el voltaje para el calculo de resistencias float res[10]; float voltaje[10]; DigitalIn boton1 (PTD4); //boton para cambiar el modo int botonA; DigitalIn boton2 (PTA12); //boton para promedio int botonB; Serial pc(USBTX, USBRX); int tiempo; // para el uso del timer Timer timer; float promedio1; //promedios float promedio2; int i; //variables para el cambio de modo y el for int modo; float corriente; //CODIGO int main() { myled = 1; wait(1); myled = 0; wait(1); modo = 0; // comienzo del codigo para medidor de voltaje timer.start(); while(true) { while(modo==0) //modo voltaje { tiempo=timer.read_ms(); if((tiempo%500==0)&&(tiempo<=5000)) { voltaje[(tiempo/500)-1]=(vout*28);//agregando los valores leidos al arreglo voltaje } if(tiempo>5000) { timer.reset(); } botonB=boton2; if(botonB==1)//calculo de promedio de valores leidos { for(i=0;i<=9;i++) { promedio1=promedio1+voltaje[i]; } pc.printf("valor del promedio del voltaje es: %f, \n ", promedio1/10); pc.printf("valor de la suma de voltaje es: %f, \n \n ", promedio1); timer.reset(); promedio1 =0; } botonA = boton1;//condicion para cambiar de modo if (botonA==1) { modo = 1; } } //fin del cofigo de medidor de voltaje //inicio de codigo de medidor de resistencia while (modo ==1) { corriente = 0.003; tiempo=timer.read_ms(); if((tiempo%500==0)&&(tiempo<=5000)) { res[(tiempo/500)-1]=(3.3-(res_analogic*3.3))/.003;//arreglo de resistencias } if(tiempo>5000) { timer.reset(); } botonB=boton2;//calculo del promedio de las resistencias if(botonB==1) { for(i=0;i<=9;i++) { promedio2=promedio2+res[i]; } pc.printf("valor del promedio de resistencia es: %f, \n ", promedio2/10); pc.printf("valor de la suma de resistencia es: %f, \n \n ", promedio2); timer.reset(); promedio2 =0; } botonA = boton2;//condicion para cambiar de modo if (botonA==1) { modo = 0; } } } }