Indice
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.
#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);}#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();}#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();}In qualità di Affiliato Amazon riceviamo un guadagno dagli acquisti idonei