void AO_setup(int i, int Rng) { DFRobot_GP8403* AO; bool needBegin = true; bool needRng = true; needBegin = (RngAO[i] == 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; } if(needBegin){ // If not begin yet Serial.println("AO_"+ String(i) + ": initialization Begin"); while(AO->begin()!=0); AO->setDACOutVoltage(0, 2); delay(5); AO->store(); } if(Rng == 10){ AO->setDACOutRange(AO->eOutputRange10V); Serial.println("AO_"+ String(i) + ": Initialized, Set Range 10V"); }else{ AO->setDACOutRange(AO->eOutputRange5V); Serial.println("AO_"+ String(i) + ": Initialized, Set Range 5V"); } RngAO[i] = Rng; RngAO[i+1] = Rng; } void 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; } //Serial.println(" [AO] " + String(i) + " > " + String(volt)); //Serial.print(" > "); //Serial.println(volt); AO->setDACOutVoltage(volt, ch); }