int CurveTracer::trace(bool printCurve, int _averaging, int stepTime_ms) { const int mVstep=5; averaging = _averaging; int Wire_mOhm = 2; int mV=0, mA=0, mW=0, mWpeak=0, mVnext=0; if(printCurve) Serial << F("\n\nmV mA mW ");
for(int i=0; i<=1023; i++) { measure(i, stepTime_ms, mV, mA); correctForWire(Wire_mOhm, mV, mA); if(i==0) { mAoffsetError = mA; // I should be 0 at start but isn't mVstart = mV; mVnext = mV; } repairOffsetError(mV, mA); calcPower(mV, mA, mW, mWpeak); if(mV <= mVnext) // measurement direction 80 75 70mV { if(printCurve) dataOut(mV, mA, mW); //testOut(i, mVnext); // only for test mVnext = mV - mVstep; } } Serial << F("\nmWpeak: ") << mWpeak; delay(1000); // pause time to read from screen return mWpeak; }
|