String comdata = ""; int cpos; int n; int skip; int gain; String tem; float time; long data[1000]; int repeat; int inter; boolean flag = false; int zero; int now; int t1; int t2; //------------------------------------------- #include #include #include //-------------------------------------------------- //-------------------------------------------- Adafruit_MCP4725 dac; Adafruit_ADS1115 ads(0x48); //-------------------------------------------------- void setup() { Serial.begin(9600); pinMode(A0, OUTPUT); ads.setGain(GAIN_ONE); dac.begin(0x62); pinMode(A1,OUTPUT); // Serial.println("INPUT:n(<1000,9ms),skip(ms),gain(0,1,2,4,8 or 16),repaet,interval(s)"); } void loop() { while (Serial.available() > 0) { comdata += char(Serial.read()); delay(2); /* if (comdata.length() > 0 && comdata == "zero") { zero = 0; now = 10000; ads.setGain(GAIN_SIXTEEN); while(now > 100){ zero++; dac.setVoltage(zero,false); now = ads.readADC_SingleEnded(2); } */ //comdata = ""; // Serial.print("DONE("); // Serial.println(zero); } if (comdata.length() > 0) { cpos = comdata.indexOf(','); if (cpos != -1) { tem = comdata.substring(0, cpos); n = tem.toInt(); comdata = comdata.substring(cpos + 1, comdata.length()); } cpos = comdata.indexOf(','); if (cpos != -1) { tem = comdata.substring(0, cpos); skip = tem.toInt(); comdata = comdata.substring(cpos + 1, comdata.length()); } cpos = comdata.indexOf(','); if (cpos != -1) { tem = comdata.substring(0, cpos); gain = tem.toInt(); comdata = comdata.substring(cpos + 1, comdata.length()); } cpos = comdata.indexOf(','); if (cpos != -1) { tem = comdata.substring(0, cpos); repeat = tem.toInt(); comdata = comdata.substring(cpos + 1, comdata.length()); } cpos = comdata.indexOf(','); /* if (cpos != -1) { tem = comdata.substring(0, cpos); inter = tem.toInt(); comdata = comdata.substring(cpos + 1, comdata.length()); }*/ inter = comdata.toInt(); comdata = ""; /* Serial.println("n:"); Serial.println(n); Serial.println("skip:"); Serial.println(skip); Serial.println("gain:"); Serial.println(gain); Serial.println("repeat:"); Serial.println(repeat); Serial.println("interval:"); Serial.println(inter); */ switch (gain) { case 0: ads.setGain(GAIN_TWOTHIRDS); break; case 1: ads.setGain(GAIN_ONE); break; case 2: ads.setGain(GAIN_TWO); break; case 4: ads.setGain(GAIN_FOUR); break; case 8: ads.setGain(GAIN_EIGHT); break; case 16: ads.setGain(GAIN_SIXTEEN); break; } for (int j = 0; j < repeat; j++) { digitalWrite(A0, HIGH); delay(skip); // time = millis(); //dac.setVoltage(zero, false); for (int i = 0; i < n; i++) { digitalWrite(A0, HIGH); t1 = ads.readADC_SingleEnded(2); digitalWrite(A0, LOW); t2 = ads.readADC_SingleEnded(2); data[i] = t1-t2; } digitalWrite(A0, LOW); //Serial.print("time for measuring(ms):"); //Serial.println(millis() - time); for (int i = 0; i < n; i++) { Serial.print(data[i]); Serial.print(","); } Serial.println(""); // Serial.println(zero); // Serial.println(ads.readADC_SingleEnded(3)); delay(50); digitalWrite(A1,HIGH); for (int k = 0; k < 1000; k++) { delay(inter); } digitalWrite(A1,LOW); delay(50); } // Serial.println("INPUT:n(<1000,9ms),skip(ms),gain(0,1,2,4,8 or 16),repaet,interval(s)"); } }