Ho tolto un po' di errori formali: spazi di troppo, spazi assenti, parentesi mancanti... Adesso viene compilato, però rimangono tutti gli errori concettuali.
const int trigPin1 = A0;
const int echoPin1 = A1;
const int trigPin2 = A3;
const int echoPin2 = A4;
const int trigPin3 = A2;
const int echoPin3 = A5;
const int in1 = 9;// motore dx
const int in2 = 8;
const int in3 = 4;//motore sx
const int in4 = 3;
const int enA = 5;
const int enB = 6;
const int in6 = 10; //motore lama
const int in5 = 11;
const int enA2 = 12;
#define PWM 125
#define PWM2 150
#define DIS 15
void setup()
{
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode (in1, OUTPUT);
pinMode (in2, OUTPUT);
pinMode (in3, OUTPUT);
pinMode (in4, OUTPUT);
pinMode (enA, OUTPUT);
pinMode (enB, OUTPUT);
pinMode (in5, OUTPUT);
pinMode (in6, OUTPUT);
pinMode (enA2, OUTPUT);
}
void motore_lama()
{ //ACENSIONE MOTORE LAMA DOPO 5 SEVONDI DEL AVVIO
delay(5000);
digitalWrite(in6, HIGH);
digitalWrite(in5, LOW);
analogWrite(enA2, PWM2);
}
void loop()
{
if ( FrontSensor() < DIS && RightSensor () <DIS && LeftSensor()<DIS) // ostacolo davanti a tutti e 3 i lati
{
reverse();
//quindi invertire
}
else if (FrontSensor() <DIS && RightSensor () <DIS && LeftSensor
()>DIS) // ostacolo sui lato destro e anteriore
{
turn_left();
// girare a sinistra
}
else if (FrontSensor() <DIS && RightSensor () >DIS && LeftSensor
()<DIS) // ostacolo sui lato sinistro e anteriore
{
turn_right();
// girare a destra
}
else if (FrontSensor() <DIS && RightSensor () >DIS && LeftSensor
()>DIS) // ostacolo difronte
{
turn_right();
// quindi girare a destra
}
else if (FrontSensor() >DIS && RightSensor () >DIS && LeftSensor
()<DIS) // ostacolo sul lato sinistro
{
turn_right ();
// quindi girare a destra e poi in avanti
delay(100);
forward();
}
else if (FrontSensor() >DIS && RightSensor () <DIS && LeftSensor
()>DIS) // ostacolo sul lato destro
{
turn_left();
// quindi girare a sinistra e poi avanti
delay(100);
forward();
}
else
{
forward();
}
}
void forward()
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, PWM);
analogWrite(enB, PWM);
}
void turn_left()
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enA, PWM);
analogWrite(enB, PWM);
}
void turn_right()
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, PWM);
analogWrite(enB, PWM);
}
void reverse()
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enA, PWM);
analogWrite(enB, PWM);
}
void stop()
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enA, LOW);
analogWrite(enB, LOW);
}
long FrontSensor()
{
long dur;
digitalWrite(trigPin1, LOW);
delayMicroseconds(5); // sono richiesti ritardi perche sensore sia di successo
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10); // è richiesto anche questo ritardo!
digitalWrite(trigPin1, LOW);
dur = pulseIn(echoPin1, HIGH);
return (dur/58);// converti la distanza in centimetri.
}
long RightSensor ()
{
long dur;
digitalWrite(trigPin2, LOW);
delayMicroseconds(5); // sono richiesti ritardi perche sensore sia di successo
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10); //è richiesto anche questo ritardo!
digitalWrite(trigPin2, LOW);
dur = pulseIn(echoPin2, HIGH);
return (dur/58);// converti la distanza in centimetri.
}
long LeftSensor()
{
long dur;
digitalWrite(trigPin3, LOW);
delayMicroseconds(5); // sono richiesti ritardi perche sensore sia di successo
digitalWrite(trigPin3, HIGH);
delayMicroseconds(10); // è richiesto anche questo ritardo!
digitalWrite(trigPin3, LOW);
dur = pulseIn(echoPin3, HIGH);
return (dur/58);// converti la distanza in centimetri.
}
P.S.:
const int trigPin1 = A0;
come viene interpretato?... Come esadecimale? Se è così, vale 160...