Errore Codice controllo motori

Vi posto il codice che utilizzo per il controllo dei motori

int VelMot1 =9;
int VelMot2 =10;
int Motore1Pos =4;
int Motore1Neg =5;
int Motore2Pos =6;
int Motore2Neg =7;

int Enable= 2;
int echoPin = 12;       // echo (digital 2)

int initPin = 13; 
int SENSIBILITA =10;
unsigned long pulseTime = 0;                    
unsigned long distanza = 0;  
 
void setup()
{
  pinMode( Enable,OUTPUT );
  pinMode( VelMot1,OUTPUT );
  pinMode( VelMot2,OUTPUT );
  pinMode( Motore1Pos,OUTPUT );
  pinMode( Motore1Neg,OUTPUT );
  pinMode( Motore2Pos,OUTPUT );
  pinMode( Motore2Neg,OUTPUT );
  
   pinMode(initPin, OUTPUT);                     
   pinMode(echoPin, INPUT);   
   unsigned long pulseTime = 0;                    
   unsigned long distanza = 0;                     // distanza in cm
   
  digitalWrite( Enable,HIGH );
  
     Serial.begin(9600);  //inizializza la seriale
}
 
void loop()
{
   //manda un impulso di ampiezza 10 us
   digitalWrite(initPin, HIGH);                    
   delayMicroseconds(10);                          
   digitalWrite(initPin, LOW);                     
   pulseTime = pulseIn(echoPin, HIGH);             // Aspetta l'eco di risposta
   distanza = pulseTime/58;                        // distanza = tempo impulso / 58 per calcolare i [cm] di distanza.
  if ( distanza >  SENSIBILITA ) {
    
    digitalWrite( Motore1Pos,HIGH );
    digitalWrite( Motore1Neg,LOW );
    digitalWrite( Motore2Pos,HIGH );
    digitalWrite( Motore2Neg,LOW );
 
    analogWrite( VelMot1,100 );
    analogWrite( VelMot2,100 );
                                 }
    
  
  else {
   
    
    //INDIETRO
    digitalWrite( Motore1Pos,LOW );
    digitalWrite( Motore1Neg,HIGH );
    digitalWrite( Motore2Pos,HIGH );
    digitalWrite( Motore2Neg,LOW );
 
    analogWrite( VelMot1,100 );
    analogWrite( VelMot2,100 );
                                      }
  
   Serial.print ("Distanza: ");
   Serial.println(distanza, DEC);         
   delay(100);                
}

In pratica un sensore (srf05) rileva la distanza,finche questa distanza è maggiore di N va avanti e fino a qui tutto bene ma appena la distanza scende sotto questa distanza (nel codice si chiama SENSIBILITA) si ferma tutto e i motori non girano indietro come dovrebbero .

Ricordati di inserire il codice con l'apposito tag "#".

Il motore 2 gira nello stesso verso sia che la Distanza sia inferiore che superiore a Sensibilità.

Scusa la mia ignoranza ma cosa è il Tag? :blush:

Il codice devi inserirlo nei tag code, vedi regolamento sezione 7, spiega bene come fare.
regolamento: http://forum.arduino.cc/index.php?topic=149082.0

come già ti avevo scritto qui:
http://forum.arduino.cc/index.php?topic=241115.msg1729204#msg1729204

ed anche qui:
http://forum.arduino.cc/index.php?topic=241115.msg1730868#msg1730868

magari alla terza volta ci arrivi :grin:

Hai ragione chiedo perdono :smiley:

Come detto da @Cybers, il codice

  digitalWrite( Motore2Pos,HIGH );
    digitalWrite( Motore2Neg,LOW );

E' identico nell'if e nell'else

Poi, hai aperto molti thread, in questo non dici che cosa usi come hardware per pilotare i motori.
Forse il L293 dell'altro thread? Una motor shield ? Dai tutte le info in un unico posto (questo thread)

mirkooo:
Hai ragione chiedo perdono :smiley:

ma non lo hai comunque cambiato, il tuo post