Tutorial Arduino #37

Motore passo-passo unipolare

Motore passo-passo unipolare | Tutorial Arduino ITA #37
Tutorial Arduino #36: Multiplexer e demultiplexer
Tutorial Arduino #36
Multiplexer e demultiplexer

Descrizione

Scopri come muovere un motore passo-passo unipolare con Arduino in modo semplice e pratico.

Imparerai a collegare il motore e a preparare tutto per il corretto funzionamento.

Ti guiderò passo dopo passo nella scrittura del codice, mostrando come controllare con precisione la velocità e la direzione dei movimenti.

Ideale per creare robot, automazioni o progetti fai-da-te, questo video ti aiuterà a comprendere come comandare i motori stepper e a migliorare i tuoi progetti con Arduino.

Scarica le risorse

Progetto: Movimento standard

Schema

Componenti

Codice

#include <Stepper.h>#define STEPS_PER_REVOLUTION 2048#define IN1 8#define IN2 9#define IN3 10#define IN4 11 Stepper stepper(STEPS_PER_REVOLUTION, IN1, IN3, IN2, IN4); void setup() {  stepper.setSpeed(15);} void loop() {  stepper.step(STEPS_PER_REVOLUTION);  delay(500);   stepper.step(-STEPS_PER_REVOLUTION);  delay(500);}
scarica il file

Progetto: Movimento con accelerazione / decelerazione

Schema

Componenti

Codice

#include <AccelStepper.h>#define STEPS_PER_REVOLUTION 2048#define IN1 8#define IN2 9#define IN3 10#define IN4 11 AccelStepper stepper(AccelStepper::FULL4WIRE, IN1, IN3, IN2, IN4);int direction = 1; void setup() {  stepper.setMaxSpeed(512);  stepper.setAcceleration(100);  stepper.move(direction * STEPS_PER_REVOLUTION);} void loop() {  if (stepper.distanceToGo() == 0) {    direction *= -1;    stepper.move(direction * STEPS_PER_REVOLUTION);  }   stepper.run();}
scarica il file

Progetto: Controllo del movimento

Schema

Componenti

Codice

#include <AccelStepper.h>#define IN1 8#define IN2 9#define IN3 10#define IN4 11#define BUTTON_PIN 2#define POT_PIN A0 AccelStepper stepper(AccelStepper::HALF4WIRE, IN1, IN3, IN2, IN4);unsigned long debounceTime = 0;int lastButtonState = LOW;int direction = 1; void setup() {  stepper.setMaxSpeed(1024);  pinMode(BUTTON_PIN, INPUT);} void loop() {  int speed = analogRead(POT_PIN);  int buttonState = digitalRead(BUTTON_PIN);  int currentTime = millis();   if (buttonState == HIGH && lastButtonState == LOW) {    if (currentTime - debounceTime > 200) {      direction *= -1;      debounceTime = currentTime;    }  }  lastButtonState = buttonState;   stepper.setSpeed(direction * speed);  stepper.runSpeed();}
scarica il file

Arduino Software Hero

Vuoi imparare a programmare Arduino, ma non sai da dove cominciare?

Iscriviti al corso online

Libri consigliati

In qualità di Affiliato Amazon riceviamo un guadagno dagli acquisti idonei


Tutorial consigliati

E-commerce di elettronica

Sul nostro negozio online trovi tutti i componenti usati nei tutorial.
Inoltre hai un'ampia scelta di prodotti tra:

  • Arduino
  • Raspberry Pi
  • Sensori
  • Robotica
  • Componenti elettronici
  • Accessori

Compra online, ricevi comodamente a casa

Visita il negozio