/********************************************************* Voltammetry example **********************************************************/ #include int i; int trial; int start; int diff; float a; float b; #define timeOff 10 #define timeOn 20 const float cumRatioMin = 0.2f; const float cumRatioMax = 0.7f; void setup() { Serial.begin(9600); while (!Serial) { // needed to keep leonardo/micro from starting too fast! delay(10); } i = 0; trial = 0; diff = 0; a = 0; b = 0; } bool fail; void loop() { byte digi; i++; if (i < timeOff) { // 2 second off digitalWrite(2, LOW); digi = 0; fail = false; a = 0; b = 0; } else if (i == timeOff) { digitalWrite(2, HIGH); start = analogRead(A0); //Serial.print(trial); //Serial.print("\t"); //Serial.print(start); //Serial.print("\t"); a = a + start; } else if(i < timeOff+timeOn) { // 2 seconds on int current = analogRead(A0); //Serial.print(current); //Serial.print("\t"); if (i < timeOff+5) { a = a + current; } else if (i >= timeOff+10 && i < timeOff+15) { b = b + current; } } else if (i == timeOff+timeOn) { int current = analogRead(A0); //Serial.println(current); digitalWrite(2, LOW); if (a>0) { float ratio = b/a; if (ratio < cumRatioMax && ratio > cumRatioMin) { Serial.println("Cum!!"); } Serial.println(b/a); } } else { i = 0; digi = 0; diff = 0; trial++; a = 0; b = 0; } if (trial > 1024) { trial = 0; } delay(10); }