• Augmented Life…

[ARDUINO] Muovere uno stepper e regolarne la velocità
by admin

Con questo sketch possiamo cambiare il verso di rotazione di uno stepper e controllarne la velocità, lo sketch sfrutta la libreria stepper.h e utilizza il motor shield rev. 3 di arduino
Componenti:

  • 1 Arduino UNO
  • 1 Motor Shield Arduino Rev. 3
  • 1 Stepper bipolare 4 fili
  • 1 potenziometro
  • 2 pulsanti
  • 2 resistenze da 220

Utilizziamo i due pulsanti per la direzione di rotazione ed il potenziometro per regolare la velocità, questa non sarà altro che il ritardo tra uno step e l’altro…

Clicca sull’immagine per vedere lo schema a dimensione reale… purtroppo con Fritzing non trovo l’immagine del motor shield quindi c’è il solo arduino

Questo il codice:

#include <Stepper.h>

const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;
const int dirA = 12;
const int dirB = 13;
const int buttonA = 2;
const int buttonB = 4;
const int potPin = 0; // Pin analogico del potenziometro

const int STEPS = 100; //numero di passi per rivoluzione -> 360/gradi

// inizializziamo la classe myStepper
Stepper myStepper(STEPS, dirA, dirB);

void setup() {
  pinMode(pwmA, OUTPUT);
  digitalWrite(pwmA, HIGH);
  pinMode(pwmB, OUTPUT);
  digitalWrite(pwmB, HIGH);
  
  pinMode(brakeA, OUTPUT);
  digitalWrite(brakeA, LOW);
  pinMode(brakeB, OUTPUT);
  digitalWrite(brakeB, LOW);

  pinMode(buttonA, INPUT);
  pinMode(buttonB, INPUT);
  pinMode(potPin, INPUT);

  Serial.begin(9600); // se vogliamo mostrare a terminale la velocità
}

void loop() {
  int passi = 1;
  int val = analogRead(potPin);
  int delayTime = map(val,0,2048,0,100);
  Serial.println(delayTime);
  
  if(digitalRead(buttonA) == HIGH){
    orario(passi, delayTime);
  }
  
  if(digitalRead(buttonB) == HIGH){
    antiorario(passi, delayTime);
  }
}

void orario(int passi, int delayTime){
  myStepper.step(passi);
  delay(delayTime);
}

void antiorario(int passi, int delayTime){
  myStepper.step(-passi);
  delay(delayTime);
}

UPDATE: aggiungo un VIDEO con un esempio dell’utilizzo del progetto sopra riportato, tramite uno stepper e una cinghia controlliamo il focheggiatore di un telescopio…

Lascia un commento

Photo

novembre 4th

10:42
arduino