String AO_setup(int i, int Rng) { DFRobot_GP8403 AO; bool needBegin = true; bool needRng = true; int twinRng = 0; if(i%2){ // Odd twinRng = RngAO[i-1]; }else{ // Even twinRng = RngAO[i+1]; } needBegin = (twinRng == 0); if(Rng > twinRng){ needRng = true; }else{ needRng = false; } if(i <= 1){ AO = AO_0; }else if(i <= 3){ AO = AO_2; }else if(i <= 5){ AO = AO_4; }else if(i <= 7){ AO = AO_6; }else if(i <= 9){ AO = AO_8; }else if(i <= 11){ AO = AO_10; }else if(i <= 13){ AO = AO_12; }else if(i <= 15){ AO = AO_14; } if(needBegin){ // If not begin yet Serial.println("AO_0 init begin"); while(AO.begin()!=0); Serial.println("AO_0 init succeed"); AO.setDACOutVoltage(0, 0); AO.setDACOutVoltage(0, 1); delay(20); AO.store(); } if(needRng){ if(Rng == 10){ AO.setDACOutRange(AO.eOutputRange10V); }else{ AO.setDACOutRange(AO.eOutputRange5V); } } RngAO[i] = Rng; } String AO_Write(int i, int volt) { DFRobot_GP8403 AO; int ch; if(i%2){ // Odd ch = 1; }else{ // Even ch = 0; } if(i <= 1){ AO = AO_0; }else if(i <= 3){ AO = AO_2; }else if(i <= 5){ AO = AO_4; }else if(i <= 7){ AO = AO_6; }else if(i <= 9){ AO = AO_8; }else if(i <= 11){ AO = AO_10; }else if(i <= 13){ AO = AO_12; }else if(i <= 15){ AO = AO_14; } AO.setDACOutVoltage(volt, ch); }