codigo para medir voltaje y resistencias mediante el microcontrolador Freedom KL25Z

Dependencies:   mbed

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;
                }
        }
                   
            
}
        
}