Dosatore con stepper cdrom e l293D

Buongiorno,
mi sono appena presentato e parto a bomba con una richiesta. Sto cercando di realizzare un piccolo dosatore utilizzando un arduino uno, uno stepper da cdrom, un pulsante e un integrato l293D. Il mio progettino dovrebbe far girare per un Tot di step il motorino alla pressione di un tasto. Il tasto deve essere usato come interruttore , quindi usare una sorta di autoritenuta che viene diseccitata alla fine del conteggio degli step da me impostati. Inizialmente gli step li imposto da pc per non complicarmi la vita con tastierini e schermi lcd.... ho già trovato difficoltà a far partire la rotazione alla pressione del tasto. Questa Domenica sono stato tutto il giorno a provare di "accrocchiare" un codice cercando di "innestare" codici di altri maker e modificandoli secondo le mie necessità. In giornata spero di poter inserire i mio codice per farvi dare un'occhiata. Attualmente il mio progetto dovrebbe funzionare così: premo il tasto - il motorino fa 7 step (impostati da me dal pc) e alla fine di questi 7 step fermarsi. Dico dovrebbe perchè in realtà premo il tasto , il motorino gira per un tot di sep ( non 7 ) epoi si ferma. Per avere un feedback di avvenuta acquisizione della pressione del tasto faccio accendere il led del pin 13. A presto con il mio accrocchiocodice.

Questo è lo Pseudo sketch che ho fatto:

int coila1 = 8; 
int coila2 = 9;
int coilb1 = 10;
int coilb2 = 11;
int i=0;
int v=2; //velocità rotazione
int ledPin = 13;
int pulsantePin = 2;
int ledStato = LOW;
int pulsanteStato = LOW;
int attesaDebounce = 50;
unsigned long ultimoTempoDebounce = 0;
int ultimaLettura = LOW;

void setup()

{

pinMode(coila1, OUTPUT);
pinMode(coila2, OUTPUT);
pinMode(coilb1, OUTPUT);
pinMode(coilb2, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(pulsantePin, INPUT);
digitalWrite(ledPin, ledStato);
}

void loop(){
int lettura = digitalRead(pulsantePin);
if(lettura != ultimaLettura){
ultimoTempoDebounce = millis();
}
if((millis() - ultimoTempoDebounce) > attesaDebounce){
if(lettura != pulsanteStato and lettura == HIGH){
ledStato = !ledStato;
digitalWrite(ledPin, ledStato);
}
pulsanteStato = lettura;
}
ultimaLettura = lettura;
delay(10);

if(ultimaLettura == HIGH){
{

for (i=0; i<7; i++) // step da compiere

{
digitalWrite(coila1, HIGH);
digitalWrite(coila2, LOW);
digitalWrite(coilb1, LOW);
digitalWrite(coilb2, LOW);

delay(v);

digitalWrite(coila1, LOW);
digitalWrite(coila2, LOW);
digitalWrite(coilb1, HIGH);
digitalWrite(coilb2, LOW);

delay(v);

digitalWrite(coila1, LOW);
digitalWrite(coila2, HIGH);
digitalWrite(coilb1, LOW);
digitalWrite(coilb2, LOW);

delay(v);

digitalWrite(coila1, LOW);
digitalWrite(coila2, LOW);
digitalWrite(coilb1, LOW);
digitalWrite(coilb2, HIGH);

delay(v);

}

delay (10);

for (i=0; i<70; i++)

{

ultimaLettura == LOW ;
}
}
}
}

abbiate pazienza sono digiuno totale