Controllo motore con sensore ultrasuoni

Buongiorno! Mi sto scervellando per riuscire a trovare un codice che funzioni con il mio progetto, che devo portare alla maturità. Sto ancora lavorando alla tesina, e mi manca una parte del codice, per questo vi chiedo una mano :stuck_out_tongue:
Premetto che sto lavorando con un Arduino Uno, e ho collegato la shield drive motore L298, e un sensore ultrasuoni SRF05. Il mio problema è teorico più che pratico, poichè ho gia realizzato metà progetto. La macchinina è funzionante, e quando trova un oggetto davanti a se si ferma. Io volevo fare che se l’ oggetto è ancora più vicino a *(distance < 30) * , la macchinina torna indietro. Ecco il codice funzionante, per ora la macchina va solo avanti e si ferma. dovrei aggiungere qualche funzione tipo if (distance < 15) { dir_a = high … ma non so come fare :frowning:
Il mio obiettivo è avvicinare la mano per fare andare la macchina indietro, e quando allontano la mano la macchina torna in avanti. Come posso fare?
ecco il codice

int pwm_a = 3; //PWM control for motor outputs 1 and 2 is on digital pin 10
int dir_a = 2; //direction control for motor outputs 1 and 2 is on digital pin 12
int Rosso = 6;//led connesso al pin digitale 6
int Giallo = 5;//led connesso al pin digitale 5
int Verde = 4;//led connesso al pin digitale 4
boolean Stop = false;

void setup()
{
pinMode(pwm_a, OUTPUT); //Set control pins to be outputs
pinMode(dir_a, OUTPUT);
pinMode(Rosso, OUTPUT);//imposta il pin come uscita
pinMode(Giallo, OUTPUT);//imposta il pin come uscita
pinMode(Verde, OUTPUT);//imposta il pin come uscita

analogWrite(pwm_a, 0); // Il motore è fermo
digitalWrite(Rosso, HIGH);
digitalWrite(Giallo, HIGH);
digitalWrite(Verde, HIGH);
delay(3000);

pinMode(11, INPUT); //ECHOPIN
pinMode(13, OUTPUT); //TRIGPIN
}

void loop()
{
if (Stop == false) {
digitalWrite(Rosso, HIGH);
digitalWrite(dir_a, LOW); // LOW = Va avanti, HIGH = Va indietro
analogWrite(pwm_a, 150); // Fa andare il motore a 150 su 255 possibili
}
else {
analogWrite(pwm_a, 0); // Ferma il motore
}

digitalWrite(13, LOW); // Set the trigger pin to low for 2uS
delayMicroseconds(2);
digitalWrite(13, HIGH); // Send a 10uS high to trigger ranging
delayMicroseconds(10);
digitalWrite(13, LOW); // Send pin low again
int distance = pulseIn(11, HIGH); // Read in times pulse
distance= distance/58;
if (distance < 30) {
Stop = true; }
else {
Stop = false;
}

}

grazie a tutti dell’ aiuto XD

Ti invitiamo a presentarti qui: http://forum.arduino.cc/index.php?topic=113640.0 e a leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0 - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: http://forum.arduino.cc/index.php?topic=146152.0 - qui le pinout delle varie schede by xxxPighi: http://forum.arduino.cc/index.php?topic=151646.0 - qui una serie di link utili: http://forum.arduino.cc/index.php?topic=126861.0

Per il codice metti come tag la parola code e non quote, grazie.