Ecco un esempio su come controllare la velocità di un motore passo passo con Arduino, EasyDriver, potenziometro e due switch. Tramite gli switch è possibile scegliere se compiere una passo completo o 1/2 o 1/4 o 1/8. Tramite il potenziometro si può regolare la frequenza. Premendo il pulsante il motore gira ad una velocità condizionata dalla posizione degli switch e dal potenziometro. Nell’esempio mostrato Arduino viene alimentato tramite usb collegata al pc e 12v per alimentare il driver e rispettivo motore.

Schema

Sketch
// www.ilsito.net // esempio con motore passo passo byte DIR = 2; byte STEP = 3; byte SLEEP = 4; byte MS1 = 5; byte MS2 = 6; int BT = 7; int potenziometro = A0; int valore = 0; // i seguenti valori si possono modificare in base al motore const int stepSleepMin = 750; const int stepSleepMax = 10000; void setup() { pinMode(DIR, OUTPUT); pinMode(STEP, OUTPUT); pinMode(SLEEP, OUTPUT); pinMode(MS1, OUTPUT); pinMode(MS2, OUTPUT); pinMode(BT, INPUT); digitalWrite(MS1, LOW); digitalWrite(MS2, LOW); Serial.begin(9600); } void loop() { int velocita = analogRead(potenziometro); valore = map(velocita, 0, 1023, stepSleepMin, stepSleepMax); Serial.println(valore); digitalWrite(DIR, HIGH); // se premo il pulsante if (digitalRead(BT) == HIGH) { digitalWrite(SLEEP, HIGH); digitalWrite(STEP, HIGH); delayMicroseconds(valore); digitalWrite(STEP, LOW); delayMicroseconds(valore); } // altrimenti else { digitalWrite(SLEEP, LOW); } }