Ok ... i change the analogPin definition and it seem to work in water. When i remove it and let the sensor in the air sensor #3 and #4 give me nearly 1024 that's ok but #1 and #2 give me random number between 600 and 800... ... i use pin 4, pin 2, pin 1 and pin 0. I really don't understand why analogPin works all fine but in this sketch some AnalogPin and DigitalPin, when they are used, give me error (DigitalPin= Not enough current, AnalogPin= Bad read value) ....
Here the sketch(Translate from french to english) :
#define voltageFlipPin11 2
#define voltageFlipPin12 3
#define voltageFlipPin21 4
#define voltageFlipPin22 6
#define voltageFlipPin31 7
#define voltageFlipPin32 8
#define voltageFlipPin41 9
#define voltageFlipPin42 11
#define sensorPin1 4
#define sensorPin2 2
#define sensorPin3 1
#define sensorPin4 0
int flipTimer = 1000;
int currentsensor=1;
int val11;
int val12;
int avg1;
int val21;
int val22;
int avg2;
int val31;
int val32;
int avg3;
int val41;
int val42;
int avg4;
void setup(){
Serial.begin(9600);
pinMode(voltageFlipPin11, OUTPUT);
pinMode(voltageFlipPin12, OUTPUT);
pinMode(voltageFlipPin21, OUTPUT);
pinMode(voltageFlipPin22, OUTPUT);
pinMode(voltageFlipPin31, OUTPUT);
pinMode(voltageFlipPin32, OUTPUT);
pinMode(voltageFlipPin41, OUTPUT);
pinMode(voltageFlipPin42, OUTPUT);
digitalWrite(voltageFlipPin11, LOW);
digitalWrite(voltageFlipPin12, LOW);
digitalWrite(voltageFlipPin21, LOW);
digitalWrite(voltageFlipPin22, LOW);
digitalWrite(voltageFlipPin31, LOW);
digitalWrite(voltageFlipPin32, LOW);
digitalWrite(voltageFlipPin41, LOW);
digitalWrite(voltageFlipPin42, LOW);
pinMode(sensorPin1, INPUT);
pinMode(sensorPin2, INPUT);
pinMode(sensorPin3, INPUT);
pinMode(sensorPin4, INPUT);
}
void loop(){
switch (currentsensor){
case 1:
digitalWrite(voltageFlipPin11, HIGH);
digitalWrite(voltageFlipPin12, LOW);
delay(flipTimer);
val11 = analogRead(sensorPin1);
delay(flipTimer);
digitalWrite(voltageFlipPin11, LOW);
digitalWrite(voltageFlipPin12, HIGH);
delay(flipTimer);
val12 = 1023 - analogRead(sensorPin1);
avg1 = (val11 + val12) / 2;
digitalWrite(voltageFlipPin11, LOW);
digitalWrite(voltageFlipPin12, LOW);
++currentsensor;
break;
case 2:
digitalWrite(voltageFlipPin21, HIGH);
digitalWrite(voltageFlipPin22, LOW);
delay(flipTimer);
val21 = analogRead(sensorPin2);
delay(flipTimer);
digitalWrite(voltageFlipPin21, LOW);
digitalWrite(voltageFlipPin22, HIGH);
delay(flipTimer);
val22 = 1023 - analogRead(sensorPin2);
avg2 = (val21 + val22) / 2;
digitalWrite(voltageFlipPin21, LOW);
digitalWrite(voltageFlipPin22, LOW);
++currentsensor;
break;
case 3:
digitalWrite(voltageFlipPin31, HIGH);
digitalWrite(voltageFlipPin32, LOW);
delay(flipTimer);
val31 = analogRead(sensorPin3);
delay(flipTimer);
digitalWrite(voltageFlipPin31, LOW);
digitalWrite(voltageFlipPin32, HIGH);
delay(flipTimer);
val32 = 1023 - analogRead(sensorPin3);
avg3 = (val31 + val32) / 2;
digitalWrite(voltageFlipPin31, LOW);
digitalWrite(voltageFlipPin32, LOW);
++currentsensor;
break;
case 4:
digitalWrite(voltageFlipPin41, HIGH);
digitalWrite(voltageFlipPin42, LOW);
delay(flipTimer);
val41 = analogRead(sensorPin4);
delay(flipTimer);
digitalWrite(voltageFlipPin41, LOW);
digitalWrite(voltageFlipPin42, HIGH);
delay(flipTimer);
val42 = 1023 - analogRead(sensorPin4);
avg4 = (val41 + val42) / 2;
digitalWrite(voltageFlipPin41, LOW);
digitalWrite(voltageFlipPin42, LOW);
++currentsensor;
break;
case 5:
Serial.print("Sensor Value #1: ");
Serial.println(avg1);
Serial.println();
Serial.print("Sensor Value #2: ");
Serial.println(avg2);
Serial.println();
Serial.print("Sensor Value #3: ");
Serial.println(avg3);
Serial.println();
Serial.print("Sensor Value #4: ");
Serial.println(avg4);
Serial.println("-----------------------");
Serial.print("Average Sensor Value: ");
Serial.println((avg1+avg2+avg3+avg4)/4);
Serial.println();
Serial.println();
currentsensor=1;
break;
}
}