Muovere Passo passo tramite pulsante

dab77:
Allora è ancora più semplice, te la cavi con 2 IF.
però perchè usi 4 pin per due pulsanti? basta un pin per pulsante, metti una resistenza di pull-up tipo da 10k (giusto?) tra il pin e i 5V, mentre il pulsante lo metti tra il pin e GND. praticamente quando lo schiacci il pin diventa 0.
per cui fai un:

if ( digitalRead(n_pin) == 0) { 

chiamata_alla_funzione_movimento()
}



..poi ci sono modi più eleganti, ma questo è il più elementare e comprensibile.

Davide.

Si giusto Davide e grazie!
ho fatto proprio così solo che non avevo il codice .
Quindi la tua stringa la dovrei inserire così?Mi da un erroreProva_pulsante_.cpp:20:20: error: invalid suffix "_pin" on integer constant

#define DIR_PIN 7
#define STEP_PIN 5
const int buttonPin = 8; //Setting button number 1 to Pin 2
int buttonState = 1; //Setting button state to off

void setup() {
pinMode(DIR_PIN, OUTPUT);
pinMode(STEP_PIN, OUTPUT);
}

void loop(){

//specifica numero giri e tempo di attesa

if ( digitalRead(8_pin) == 0) {
rotateDeg(-1000, 0.7);
delay(000);
}
}

void rotateDeg(float deg, float speed){
//rotate a specific number of degrees (negitive for reverse movement)
//speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
int dir = (deg > 0)? HIGH:LOW;
digitalWrite(DIR_PIN,dir);

int steps = abs(deg)*(1/0.225);
float usDelay = (1/speed) *30;

for(int i=0; i < steps; i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);

digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}