Camille Annequin
/
trprepre
mesuring curent
main.cpp@3:45185bc91e89, 2019-06-03 (annotated)
- Committer:
- Annequin
- Date:
- Mon Jun 03 09:33:47 2019 +0000
- Revision:
- 3:45185bc91e89
- Parent:
- 2:ad0b044d0a10
mesuring curent
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 1:7418a52375a0 | 1 | // Hello World! for the TextLCD |
simon | 1:7418a52375a0 | 2 | |
simon | 0:334327d1a416 | 3 | #include "mbed.h" |
simon | 0:334327d1a416 | 4 | #include "TextLCD.h" |
Annequin | 3:45185bc91e89 | 5 | #include <math.h> |
Annequin | 3:45185bc91e89 | 6 | //#include <cmath> |
Annequin | 3:45185bc91e89 | 7 | Ticker toggle_ueff_ticker; |
Annequin | 3:45185bc91e89 | 8 | //Ticker toggle_ieff_ticker; |
Annequin | 3:45185bc91e89 | 9 | TextLCD lcd(p25, p26, p21, p22, p23, p24); // rs, e, d4-d7 |
Annequin | 3:45185bc91e89 | 10 | InterruptIn mybutton(p12); |
Annequin | 3:45185bc91e89 | 11 | InterruptIn mybutton2(p13); |
Annequin | 3:45185bc91e89 | 12 | DigitalOut myled(LED1); |
simon | 0:334327d1a416 | 13 | |
Annequin | 3:45185bc91e89 | 14 | AnalogIn inputu(p15); |
Annequin | 3:45185bc91e89 | 15 | int vn; |
Annequin | 3:45185bc91e89 | 16 | int inu; |
Annequin | 3:45185bc91e89 | 17 | float v2n, v2ninter, anu, anmoy, ueff; |
Annequin | 3:45185bc91e89 | 18 | //float v2ninter = 0; |
Annequin | 3:45185bc91e89 | 19 | //float anu = 0; |
Annequin | 3:45185bc91e89 | 20 | //float anmoy = 0; |
Annequin | 3:45185bc91e89 | 21 | //float ueff; |
Annequin | 3:45185bc91e89 | 22 | |
Annequin | 3:45185bc91e89 | 23 | AnalogIn enteri(p17); |
Annequin | 3:45185bc91e89 | 24 | int in; |
Annequin | 3:45185bc91e89 | 25 | int ini; |
Annequin | 3:45185bc91e89 | 26 | float i2n, i2ninter, ani, animoy, ieff; |
Annequin | 3:45185bc91e89 | 27 | //float i2ninter = 0; |
Annequin | 3:45185bc91e89 | 28 | //float ani = 0; |
Annequin | 3:45185bc91e89 | 29 | //float animoy = 0; |
Annequin | 3:45185bc91e89 | 30 | //float ieff; |
Annequin | 3:45185bc91e89 | 31 | |
Annequin | 3:45185bc91e89 | 32 | float pactive; |
Annequin | 3:45185bc91e89 | 33 | |
Annequin | 3:45185bc91e89 | 34 | //AnalogIn A0(p17); |
Annequin | 3:45185bc91e89 | 35 | //AnalogIn A1(p18); |
Annequin | 3:45185bc91e89 | 36 | //AnalogIn A2(p19); |
Annequin | 3:45185bc91e89 | 37 | //AnalogIn A3(p20); |
Annequin | 3:45185bc91e89 | 38 | int a=0; |
Annequin | 3:45185bc91e89 | 39 | int n; |
Annequin | 3:45185bc91e89 | 40 | int n2; |
Annequin | 3:45185bc91e89 | 41 | int cpt; |
Annequin | 3:45185bc91e89 | 42 | float nrj = 0; |
Annequin | 3:45185bc91e89 | 43 | float nrjh; |
Annequin | 3:45185bc91e89 | 44 | int nrjhint; |
Annequin | 3:45185bc91e89 | 45 | int nrjhint_1; |
Annequin | 3:45185bc91e89 | 46 | void toggle_ueff() { |
Annequin | 3:45185bc91e89 | 47 | |
Annequin | 3:45185bc91e89 | 48 | |
Annequin | 3:45185bc91e89 | 49 | vn = (inputu.read_u16() - 32768); |
Annequin | 3:45185bc91e89 | 50 | v2ninter = v2n; |
Annequin | 3:45185bc91e89 | 51 | v2n = (vn * vn); |
Annequin | 3:45185bc91e89 | 52 | anu = (anu + ((v2ninter + v2n)/2)); |
Annequin | 3:45185bc91e89 | 53 | |
Annequin | 3:45185bc91e89 | 54 | |
Annequin | 3:45185bc91e89 | 55 | |
Annequin | 3:45185bc91e89 | 56 | in = ((enteri.read_u16()*1) - 32768); |
Annequin | 3:45185bc91e89 | 57 | i2ninter = i2n; |
Annequin | 3:45185bc91e89 | 58 | i2n = (in * in); |
Annequin | 3:45185bc91e89 | 59 | ani = (ani + ((i2ninter + i2n)/2)); |
Annequin | 3:45185bc91e89 | 60 | |
Annequin | 3:45185bc91e89 | 61 | n++; |
Annequin | 3:45185bc91e89 | 62 | if (n >= 5000) |
Annequin | 3:45185bc91e89 | 63 | { |
Annequin | 3:45185bc91e89 | 64 | anmoy = (anu/5000.0); |
Annequin | 3:45185bc91e89 | 65 | ueff = 0.873961*((sqrt((double)anmoy)*353.5533)/32768.0); |
Annequin | 3:45185bc91e89 | 66 | |
Annequin | 3:45185bc91e89 | 67 | anu = 0; |
Annequin | 3:45185bc91e89 | 68 | |
Annequin | 3:45185bc91e89 | 69 | animoy = (ani/5000.0); |
Annequin | 3:45185bc91e89 | 70 | ieff = ((sqrt((double)animoy)*5)/32768.0); |
Annequin | 3:45185bc91e89 | 71 | ani = 0; |
Annequin | 3:45185bc91e89 | 72 | |
simon | 0:334327d1a416 | 73 | |
Annequin | 3:45185bc91e89 | 74 | pactive = ueff*ieff; |
Annequin | 3:45185bc91e89 | 75 | n = 0; |
Annequin | 3:45185bc91e89 | 76 | cpt++; |
Annequin | 3:45185bc91e89 | 77 | if(cpt == 2){ |
Annequin | 3:45185bc91e89 | 78 | myled = 0; |
Annequin | 3:45185bc91e89 | 79 | cpt = 0; |
Annequin | 3:45185bc91e89 | 80 | nrj = (nrj + pactive); |
Annequin | 3:45185bc91e89 | 81 | nrjh = nrj / 3600; |
Annequin | 3:45185bc91e89 | 82 | nrjhint_1 = nrjhint; |
Annequin | 3:45185bc91e89 | 83 | nrjhint = nrjh; |
Annequin | 3:45185bc91e89 | 84 | |
Annequin | 3:45185bc91e89 | 85 | if(nrjhint >= (nrjhint_1 + 1)) |
Annequin | 3:45185bc91e89 | 86 | { |
Annequin | 3:45185bc91e89 | 87 | myled=1; |
Annequin | 3:45185bc91e89 | 88 | } |
Annequin | 3:45185bc91e89 | 89 | } |
Annequin | 3:45185bc91e89 | 90 | } |
Annequin | 3:45185bc91e89 | 91 | |
Annequin | 3:45185bc91e89 | 92 | } |
Annequin | 3:45185bc91e89 | 93 | |
Annequin | 3:45185bc91e89 | 94 | |
Annequin | 3:45185bc91e89 | 95 | |
Annequin | 3:45185bc91e89 | 96 | |
Annequin | 3:45185bc91e89 | 97 | |
Annequin | 3:45185bc91e89 | 98 | void pressed() |
Annequin | 3:45185bc91e89 | 99 | { |
Annequin | 3:45185bc91e89 | 100 | a++; |
Annequin | 3:45185bc91e89 | 101 | if(a>=5){ |
Annequin | 3:45185bc91e89 | 102 | a = 0; |
Annequin | 3:45185bc91e89 | 103 | } |
Annequin | 3:45185bc91e89 | 104 | } |
Annequin | 3:45185bc91e89 | 105 | |
Annequin | 3:45185bc91e89 | 106 | |
Annequin | 3:45185bc91e89 | 107 | void pressed2() |
Annequin | 3:45185bc91e89 | 108 | { |
Annequin | 3:45185bc91e89 | 109 | a--; |
Annequin | 3:45185bc91e89 | 110 | if(a<=0){ |
Annequin | 3:45185bc91e89 | 111 | a = 4; |
Annequin | 3:45185bc91e89 | 112 | } |
simon | 0:334327d1a416 | 113 | } |
Annequin | 3:45185bc91e89 | 114 | void clear() |
Annequin | 3:45185bc91e89 | 115 | {lcd.cls();} |
Annequin | 3:45185bc91e89 | 116 | |
Annequin | 3:45185bc91e89 | 117 | int main() |
Annequin | 3:45185bc91e89 | 118 | { |
Annequin | 3:45185bc91e89 | 119 | toggle_ueff_ticker.attach(&toggle_ueff, 0.0002); |
Annequin | 3:45185bc91e89 | 120 | //toggle_ieff_ticker.attach(&toggle_ieff, 0.0001); |
Annequin | 3:45185bc91e89 | 121 | mybutton.fall(&pressed); |
Annequin | 3:45185bc91e89 | 122 | //mybutton.rise(&clear); |
Annequin | 3:45185bc91e89 | 123 | mybutton2.fall(&pressed2); |
Annequin | 3:45185bc91e89 | 124 | //mybutton2.rise(&clear); |
Annequin | 3:45185bc91e89 | 125 | while(1) |
Annequin | 3:45185bc91e89 | 126 | { |
Annequin | 3:45185bc91e89 | 127 | pactive = ueff*ieff; |
Annequin | 3:45185bc91e89 | 128 | clear(); |
Annequin | 3:45185bc91e89 | 129 | lcd.locate(9,1); |
Annequin | 3:45185bc91e89 | 130 | lcd.printf("page %d",a); |
Annequin | 3:45185bc91e89 | 131 | |
Annequin | 3:45185bc91e89 | 132 | if(a == 0){ |
Annequin | 3:45185bc91e89 | 133 | //clear(); |
Annequin | 3:45185bc91e89 | 134 | lcd.locate(0,0); |
Annequin | 3:45185bc91e89 | 135 | //lcd.putc(a); |
Annequin | 3:45185bc91e89 | 136 | lcd.printf("Ueff = %f",ueff ); |
Annequin | 3:45185bc91e89 | 137 | |
Annequin | 3:45185bc91e89 | 138 | lcd.locate(0,1); |
Annequin | 3:45185bc91e89 | 139 | //lcd.putc(a); |
Annequin | 3:45185bc91e89 | 140 | lcd.printf("Ieff = %f",ieff ); |
Annequin | 3:45185bc91e89 | 141 | // wait(0.2); |
Annequin | 3:45185bc91e89 | 142 | |
Annequin | 3:45185bc91e89 | 143 | } |
Annequin | 3:45185bc91e89 | 144 | |
Annequin | 3:45185bc91e89 | 145 | |
Annequin | 3:45185bc91e89 | 146 | |
Annequin | 3:45185bc91e89 | 147 | if(a == 1){ |
Annequin | 3:45185bc91e89 | 148 | // clear(); |
Annequin | 3:45185bc91e89 | 149 | lcd.locate(0,0); |
Annequin | 3:45185bc91e89 | 150 | //lcd.putc(a); |
Annequin | 3:45185bc91e89 | 151 | lcd.printf("nrjh = %d",nrjhint ); |
Annequin | 3:45185bc91e89 | 152 | // wait(0.2); |
Annequin | 3:45185bc91e89 | 153 | |
Annequin | 3:45185bc91e89 | 154 | } |
Annequin | 3:45185bc91e89 | 155 | if(a == 2){ |
Annequin | 3:45185bc91e89 | 156 | //clear(); |
Annequin | 3:45185bc91e89 | 157 | lcd.locate(0,0); |
Annequin | 3:45185bc91e89 | 158 | //lcd.putc(a); |
Annequin | 3:45185bc91e89 | 159 | lcd.printf("Pactive = %f",pactive ); |
Annequin | 3:45185bc91e89 | 160 | //wait(0.2); |
Annequin | 3:45185bc91e89 | 161 | |
Annequin | 3:45185bc91e89 | 162 | } |
Annequin | 3:45185bc91e89 | 163 | if(a == 3){ |
Annequin | 3:45185bc91e89 | 164 | // clear(); |
Annequin | 3:45185bc91e89 | 165 | lcd.locate(0,0); |
Annequin | 3:45185bc91e89 | 166 | //lcd.putc(a); |
Annequin | 3:45185bc91e89 | 167 | lcd.printf("anu = %f",anu ); |
Annequin | 3:45185bc91e89 | 168 | //wait(0.2); |
Annequin | 3:45185bc91e89 | 169 | |
Annequin | 3:45185bc91e89 | 170 | } |
Annequin | 3:45185bc91e89 | 171 | if(a == 4){ |
Annequin | 3:45185bc91e89 | 172 | // lcd.locate(0,0); |
Annequin | 3:45185bc91e89 | 173 | //lcd.putc(a); |
Annequin | 3:45185bc91e89 | 174 | //lcd.printf("ueff = %lf",ueff ); |
Annequin | 3:45185bc91e89 | 175 | // wait(0.2); |
Annequin | 3:45185bc91e89 | 176 | // clear(); |
Annequin | 3:45185bc91e89 | 177 | } |
Annequin | 3:45185bc91e89 | 178 | wait(1.0); |
Annequin | 3:45185bc91e89 | 179 | } |
Annequin | 3:45185bc91e89 | 180 | } |