Camille Annequin
/
trprepre
mesuring curent
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); } }