Errore Codice controllo motori


vi posto il codice che utilizzo per il controllo dei motori

code: [select]
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 [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 qui tutto bene ma appena la distanza scende sotto questa distanza (nel codice si chiama sensibilita) si ferma tutto e 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 sensibilità.


Arduino Forum > International > Italiano > Software (Moderator: leo72) > Errore Codice controllo motori


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support