Facciamo cambiare il senso di rotazione del motore

Modificando leggermente lo schema di collegamento e modificando lo sketch è possibile modificare il senso di rotazione del motore:

Schema 02 Dir_bb
(aggiunto il cavo azzurro dal pin 3 di Arduino al pin dir della stepstick)

Modifichiamo ora lo sketch (sono evidenziate le righe aggiunte), aggiungendo la possibilità di gestire anche la direzione di rotazione:

//definiamo i pin utilizzati
int MotoreDir=3;
int MotoreStep=4;
int MotoreEnable=5;
int Led=13;
//definiamo le variabili che useremo
int NumeroPassi=200;//Il motore dovrebbe fare un giro 200×1,8°=360°
int Attesa=1000;//1 secondo tra un giro e l’altro
int Velocita=5;//Tempo di attesa tra uno step e l’altro. Più è basso questo valore più è veloce il motore
boolean Direzione = false;//variabile per gestire la direzione del motore
//A seconda del valore qui inpostato (false o true) il motore girerà in un senso o nell'altro

void setup() {
      pinMode(MotoreDir, OUTPUT); // imposto il pin indicato come uscita
      pinMode(MotoreStep, OUTPUT); // imposto il pin indicato come uscita
      pinMode(MotoreEnable, OUTPUT); // imposto il pin indicato come uscita
      pinMode(Led, OUTPUT); // imposto il pin indicato come uscita
}

void loop(){
      AccendiLed();
      Motore();
      SpegniLed();
      delay(Attesa);//attendiamo per il prossimo ciclo
}

void AccendiLed(void)
{
      digitalWrite(Led, HIGH);//accendiamo il led
}
void SpegniLed(void)
{
      digitalWrite(Led, LOW);//spegnamo il led
}

void Motore(void)
{

      if (Direzione==true) digitalWrite(MotoreDir, HIGH);//Abilitiamo un senso di rotazione
      if (Direzione==false) digitalWrite(MotoreDir, LOW);//Abilitiamo il senso opposto
      digitalWrite(MotoreEnable, LOW);//Abilitiamo la scheda passo passo abbassando il livello logico dell’uscita
      for (int ciclo=0;ciclo<NumeroPassi;ciclo++){
            //diamo un impulso al motore
            digitalWrite(MotoreStep, LOW);
            delayMicroseconds(2);
            digitalWrite(MotoreStep, HIGH);
            delayMicroseconds(2);
            delay(Velocita);//attesa per il prossimo impulso
      }
      digitalWrite(MotoreEnable, HIGH);//Disabilitiamo la scheda passo passo alzando il livello logico dell’uscita
}

Aggiungiamo un controllo per il numero di foto da scattare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Donate

Support TLTools, Make A Donation

Please make a donation if you enjoy using our software and believe in the importance of what the ciemmesoft is working to accomplish.

PayPal Donate Button

Fai una donazione!

Sostieni il progetto, fai una donazione TLTools è un progetto gratuito. Fai una donazione se ti piace utilizzare il nostro software e se credi nell'importanza di ciò a cui il progetto lavora.

PayPal Donate Button