# Aiuto Stepper Motor

**URL:** <https://forum.arduino.cc/t/aiuto-stepper-motor/900118>\
**Category:** Software\
**Created:** [August 28, 2021, 3:57pm UTC](https://forum.arduino.cc/t/aiuto-stepper-motor/900118 "2021-08-28T15:57:43Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![anto04](https://avatars.discourse-cdn.com/v4/letter/a/4491bb/32.png) [@anto04](https://forum.arduino.cc/u/anto04)\
**Post date:** [August 28, 2021, 3:57pm UTC](https://forum.arduino.cc/t/aiuto-stepper-motor/900118/1 "2021-08-28T15:57:44Z")

</div>

Sto iniziando ad utilizzare lo stepper motor ed ho un problema che non riesco a risolvere, secondo il datasheet del mio 28BYJ-48 per fare un giro completo di 360° ci vogliono circa 4.090 passi, così ho deciso di stampare i passi su un monitor seriale ma me ne da la metà per ogni ciclo di 360°, perchè questo? Il motore si attiva solamente quando un pulsante è premuto.

int button\_1 = 2; //Pulsante 1 sul pin 2  
int button\_2 = 3; //Pulsante 2 sul pin 3  
int motorPin1 = 8; //IN1 sul pin 8  
int motorPin2 = 9; //IN2 sul pin 9  
int motorPin3 = 10; //IN3 sul pin 10  
int motorPin4 = 11; //IN4 sul pin 11  
int val=0; //Passi  
int motor\_Speed = 4;  
int motor\_Step;  
int val1 = 0;  
int val2 = 0;

void setup() {  
pinMode(button\_1, INPUT); //Imposto il pin 2 come input  
pinMode(button\_2, INPUT); //Imposto il pin 3 come input  
pinMode(motorPin1, OUTPUT);  
pinMode(motorPin2, OUTPUT);  
pinMode(motorPin3, OUTPUT);  
pinMode(motorPin4, OUTPUT);  
Serial.begin(9600);  
}

void loop() {  
Serial.println(val,DEC); //Stampo i passi  
val1 = digitalRead(button\_1); //Quando premo il pulsante 1 gira a sinistra  
if (val1 == HIGH)  
{

digitalWrite(motorPin1, HIGH);  
digitalWrite(motorPin2, LOW);  
digitalWrite(motorPin3, LOW);  
digitalWrite(motorPin4, LOW);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
digitalWrite(motorPin1, LOW);  
digitalWrite(motorPin2, HIGH);  
digitalWrite(motorPin3, LOW);  
digitalWrite(motorPin4, LOW);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
digitalWrite(motorPin1, LOW);  
digitalWrite(motorPin2, LOW);  
digitalWrite(motorPin3, HIGH);  
digitalWrite(motorPin4, LOW);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
digitalWrite(motorPin1, LOW);  
digitalWrite(motorPin2, LOW);  
digitalWrite(motorPin3, LOW);  
digitalWrite(motorPin4, HIGH);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
}

val2 = digitalRead(button\_2); //Quando premo il pulsante 2 gira a destra  
if (val2 == HIGH)

{  
digitalWrite(motorPin4, HIGH);  
digitalWrite(motorPin3, LOW);  
digitalWrite(motorPin2, LOW);  
digitalWrite(motorPin1, LOW);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
digitalWrite(motorPin4, LOW);  
digitalWrite(motorPin3, HIGH);  
digitalWrite(motorPin2, LOW);  
digitalWrite(motorPin1, LOW);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
digitalWrite(motorPin4, LOW);  
digitalWrite(motorPin3, LOW);  
digitalWrite(motorPin2, HIGH);  
digitalWrite(motorPin1, LOW);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
digitalWrite(motorPin4, LOW);  
digitalWrite(motorPin3, LOW);  
digitalWrite(motorPin2, LOW);  
digitalWrite(motorPin1, HIGH);  
delay(motor\_Speed);  
val= val+1; //incremento di un passo  
}  
}

---

<div class="post-metadata">

**Author:** ![gpb01](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gpb01/32/830685_2.png) [@gpb01](https://forum.arduino.cc/u/gpb01)\
**Post date:** [September 1, 2021, 12:05pm UTC](https://forum.arduino.cc/t/aiuto-stepper-motor/900118/2 "2021-09-01T12:05:38Z")

</div>

Buongiorno,

prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo di che ...

... in conformità al [REGOLAMENTO](https://forum.arduino.cc/t/regolamento-come-usare-questo-forum/145566), fosse anche per una sola riga, il codice va racchiuso negli appositi tag ... 🙄

Cortesemente, quindi, edita il tuo post più sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita ✏ che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona \</\> nella barra degli strumenti per contrassegnarla come codice.

Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (_questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE_). Grazie.

Guglielmo

---

<div class="post-metadata">

**Author:** ![icio](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/icio/32/216469_2.png) [@icio](https://forum.arduino.cc/u/icio)\
**Post date:** [September 4, 2021, 8:03pm UTC](https://forum.arduino.cc/t/aiuto-stepper-motor/900118/3 "2021-09-04T20:03:44Z")

</div>

Più preciso sono 4096 passi per giro

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 2, 2022, 8:04pm UTC](https://forum.arduino.cc/t/aiuto-stepper-motor/900118/4 "2022-01-02T20:04:42Z")

</div>

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.
