#include "mbed.h"
AnalogIn sw(p19);
AnalogIn cell(p20);
Serial pc(USBTX, USBRX); // tx, rx
DigitalOut BatSw(p5);
int main()
{
const float R = 13;
float x = 0.27;
// スイッチOff
BatSw = 0;
pc.baud(115200);
float E, voltage, Vsw, innerR, current, Vr;
while(true)
{
// 解放電圧
E = cell.read()*3.3;
pc.printf("E=%.3f ", E);
// スイッチON
BatSw = 1;
wait(1.0);
Vsw = sw.read()*3.3;
voltage=cell.read()*3.3;
Vr = voltage - Vsw;
pc.printf(" Vr=%.3f Vsw=%.3f", Vr, Vsw);
innerR = R*(1+Vsw/Vr)*(E/voltage-1);
current = Vr/R;
x = Vsw/current;
pc.printf(" r=%.3f I=%.3f x=%.3f\n", innerR, current, x);
// スイッチOff
BatSw = 0;
wait(1.0);
}
}
|
1
2
3 TND012NMのOUTに繋げる
4 電池の+に繋げる
5
6 TND012NMのINに繋げる
7
8
9 負荷抵抗の値
10 取り合えずのFETの内部抵抗
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 (9)の式
28
29 FETの内部抵抗を変更する
30
31
32
33
34
35
|