#include <Stepper.h>
#define pulsante 3
#define pinBuzzer 2
#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
#define StepGiro 32 // 11.25°
#define StepGiroTotali 32 * 64 //2048 passi per un giro completo
Stepper small_stepper(StepGiro, IN1, IN3, IN2, IN4 );
int StepDaFare;
unsigned long tempo = 0 ;
void setup()
{ Serial.begin(9600);
pinMode(pulsante, INPUT_PULLUP); // pulsante tra il pin3 e il GND
pinMode(pinBuzzer, OUTPUT);
Fermo();
}
void loop()
{
if ( digitalRead(pulsante) == LOW )
{digitalWrite(pinBuzzer,HIGH);
Avvia();
tempo = millis();
StepDaFare = StepGiroTotali / 8; // Rotate CW 1/8 turn (45°)
small_stepper.setSpeed(700); // 700 dovrebbe essere una buona velocita' senza problemi
small_stepper.step(StepDaFare);
Fermo();
digitalWrite(pinBuzzer,LOW);
Serial.println( millis() - tempo);
}
}
void Beep()
{ digitalWrite(pinBuzzer, HIGH);
delay(800);
digitalWrite(pinBuzzer, LOW);
}
void Avvia()
{ for ( int i = 4; i < 8; i++) pinMode(i, OUTPUT);
}
void Fermo()
{ for ( int i = 4; i < 8; i++) pinMode(i, INPUT);
}