Nick2012Future:
pylon:
So I need to use integer value, How do I do to read all 4 values, I guess I can do it sequently one by one, but not all 4 together?
The Arduino can never do two or more things at the same time because it has only one processor. So yes, it has to do it sequentially.
You can do the read like this:
uint8_t i;
for (i = 0; i < 4; i++) {
msr = analogRead(LDR[i]);
if (msr == 154) {
// do anything
}
}
I cannot give you more hints because I have no clue what your sketch is expected to do. Usually checking a specific value you got from an analogRead() doesn't make sense, so in the above code we probably still have an error.I converted each value into voltage and I used to compare. It's actually working:
void loop(){
msr1=analogRead(LDR[0])*5.00/1023;
Serial.print("Voltage(LDR1)=");
Serial.print(msr1,3);
Serial.write(space);
val1=analogRead(LDR[0]);
Serial.print("range=");
Serial.print(val1);
Serial.write(space);
msr2=analogRead(LDR[1])*5.00/1023;
Serial.print("Voltage(LDR2)=");
Serial.print(msr2,3);
Serial.write(space);
val2=analogRead(LDR[1]);
Serial.print("range=");
Serial.print(val2);
Serial.write(space);
msr3=analogRead(LDR[2])*5.00/1023;
Serial.print("Voltage(LDR3)=");
Serial.print(msr3,3);
Serial.write(space);
val3=analogRead(LDR[2]);
Serial.print("range=");
Serial.print(val3);
Serial.write(space);
msr4=analogRead(LDR[3])*5.00/1023;
Serial.print("Voltage(LDR4)=");
Serial.print(msr4,3);
Serial.write(space);
val4=analogRead(LDR[3]);
Serial.print("range=");
Serial.print(val4);
Serial.write(space);
msr5=analogRead(LDR[4])*5.00/1023;
Serial.print("Voltage(LDR5)=");
Serial.print(msr5,3);
Serial.write(space);
val5=analogRead(LDR[4]);
Serial.print("range=");
Serial.print(val5);
Serial.write(space);
Serial.println("");
delay(500);
if(val3==151){ // Lorsque la touche "w" est activée, la voiture avance
Serial.print("MotControl4=");
Serial.print(MotControl4);
do{digitalWrite(MotControl4,HIGH);
digitalWrite(MotControl3,LOW);
msr3=analogRead(LDR[2])*5.00/1023;
Serial.print("Voltage(LDR3)=");
Serial.print(msr3,3);
Serial.write(space);
val3=analogRead(LDR[2]);
Serial.print("range=");
Serial.print(val3);
Serial.write(space);
Serial.println("");
delay(500);
}
while(val3==151);
}
Thank you, your code is much simple and as much useful.