Hello, I am trying to build a robot (line follower) which is equipped with light resistor sensors, so I can read variation of voltage on each of them in the .
I am trying to use swich case to send commands to motors if I specific value is selected between 0 and 1023. I don't know how to do it for 4 resistors. Maybe I should use array...
code: #
int MotControl1=6; //Assigne la pin #6 ("a" tourne à gauche)
int MotControl2=7; //Assigne la pin #7 ("s" toutne à droite)
int MotControl3=2; //Assigne la pin #3 (voiture avance)
int MotControl4=3; //Assigne la pin #3 (voiture recule)
int LDR1=0; //LDR1 cathode to A0
int LDR2=1; //LDR1 cathode to A1
int LDR3=2; //LDR1 cathode to A2
int LDR4=3; //LDR1 cathode to A3
int LDR[]={LDR1, LDR2, LDR3, LDR4}; //Assigne value 0 to integer of variable val
int val=0;
int byteout=0; //Key pressed on DEC
int space=32; //Space
float msr=0; //Voltage measure on LDR
void setup(){
Serial.begin(9600);
pinMode(LDR1,INPUT);
pinMode(LDR1,LOW);
}
void loop(){
val=analogRead(LDR[0]);
Serial.print("range=");
Serial.println(val);
msr=analogRead(LDR[5])*5.00/1023;
Serial.write(space);
Serial.print("Voltage=");
Serial.print(msr,3);
Serial.write(space);
byteout=Serial.read();
delay(500);
switch (val){
case 157: // Lorsque la touche "w" est activée, la voiture tourne à gauche
Serial.print("MotControl4=");
Serial.print("MotControl1=");
digitalWrite(MotControl4,HIGH);
digitalWrite(MotControl3,LOW);
Serial.print(byteout);
Serial.write(space);
digitalWrite(MotControl1,HIGH);
digitalWrite(MotControl2,LOW);
Serial.print(byteout);
Serial.write(space);
delay (500);
break;
}
//switch (LDR[0]){
//case 157:
//Serial.print("MotControl4=");
//Serial.print("MotControl1=");
//digitalWrite(MotControl4,HIGH);
//digitalWrite(MotControl3,LOW);
//Serial.print(byteout);
//Serial.write(space);
//digitalWrite(MotControl1,HIGH);
//digitalWrite(MotControl2,LOW);
//Serial.print(byteout);
//Serial.write(space);
//delay (400);
//break;
//}
}