mesuring curent

Dependencies:   mbed TextLCD

main.cpp

Committer:
Annequin
Date:
2019-06-03
Revision:
3:45185bc91e89
Parent:
2:ad0b044d0a10

File content as of revision 3:45185bc91e89:

// Hello World! for the TextLCD

#include "mbed.h"
#include "TextLCD.h"
#include <math.h>
//#include <cmath>
Ticker toggle_ueff_ticker;
//Ticker toggle_ieff_ticker;
TextLCD lcd(p25, p26, p21, p22, p23, p24); // rs, e, d4-d7
InterruptIn mybutton(p12);
InterruptIn mybutton2(p13);
DigitalOut myled(LED1);

AnalogIn inputu(p15);
int vn;
int inu;
float v2n, v2ninter, anu, anmoy, ueff;
//float v2ninter = 0;
//float anu = 0;
//float anmoy = 0;
//float ueff;

AnalogIn enteri(p17);
int in;
int ini;
float i2n, i2ninter, ani, animoy, ieff;
//float i2ninter = 0;
//float ani = 0;
//float animoy = 0;
//float ieff;

float pactive;

//AnalogIn A0(p17);
//AnalogIn A1(p18);
//AnalogIn A2(p19);
//AnalogIn A3(p20);
int a=0;
int n;
int n2;
int cpt;
float nrj = 0;
float nrjh;
int nrjhint;
int nrjhint_1;
void toggle_ueff() {
  
    
    vn = (inputu.read_u16() - 32768);
    v2ninter = v2n;
    v2n = (vn * vn);
    anu = (anu + ((v2ninter + v2n)/2));
   
    
  
    in = ((enteri.read_u16()*1) - 32768);
    i2ninter = i2n;
    i2n = (in * in);
    ani = (ani + ((i2ninter + i2n)/2));
   
    n++;
    if (n >= 5000)
    {
      anmoy = (anu/5000.0);
      ueff = 0.873961*((sqrt((double)anmoy)*353.5533)/32768.0);
       
       anu = 0;
       
       animoy = (ani/5000.0);
      ieff = ((sqrt((double)animoy)*5)/32768.0);
       ani = 0;
       

       pactive = ueff*ieff;
        n = 0; 
        cpt++;
        if(cpt == 2){
            myled = 0;
            cpt = 0;
            nrj = (nrj + pactive);
            nrjh = nrj / 3600;
            nrjhint_1 = nrjhint;
            nrjhint = nrjh;
            
            if(nrjhint >= (nrjhint_1 + 1))
            {
                myled=1;
            }
        }
    }
    
}





void pressed()
{
   a++;
   if(a>=5){
       a = 0;
       }
}

 
void pressed2()
{
  a--;
  if(a<=0){
      a = 4;
      }
}
void clear()
{lcd.cls();}

int main()
{
    toggle_ueff_ticker.attach(&toggle_ueff, 0.0002);
     //toggle_ieff_ticker.attach(&toggle_ieff, 0.0001);
                  mybutton.fall(&pressed);
    //mybutton.rise(&clear);
               mybutton2.fall(&pressed2);
    //mybutton2.rise(&clear);
 while(1)
 {
    pactive = ueff*ieff;
    clear();
    lcd.locate(9,1);
    lcd.printf("page  %d",a);
     
      if(a == 0){
            //clear();
            lcd.locate(0,0);
      //lcd.putc(a);
      lcd.printf("Ueff = %f",ueff );
      
      lcd.locate(0,1);
      //lcd.putc(a);
      lcd.printf("Ieff = %f",ieff );
      // wait(0.2);
      
      }
      
      
      
        if(a == 1){
           // clear();
            lcd.locate(0,0);
      //lcd.putc(a);
      lcd.printf("nrjh = %d",nrjhint );
      // wait(0.2);
      
      }
         if(a == 2){
             //clear();
        lcd.locate(0,0);
      //lcd.putc(a);
      lcd.printf("Pactive = %f",pactive );
       //wait(0.2);
      
      }
        if(a == 3){
          // clear();
           lcd.locate(0,0);
      //lcd.putc(a);
      lcd.printf("anu = %f",anu );
       //wait(0.2);
      
      }
         if(a == 4){
         //  lcd.locate(0,0);
      //lcd.putc(a);
      //lcd.printf("ueff = %lf",ueff );
      // wait(0.2);
     // clear();
      }
  wait(1.0);
    }
}