Errore Codice controllo motori
vi posto il codice che utilizzo per il controllo dei motori
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 .
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à.
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
Post a Comment