Ok...
De onde vêm esses 5V? Da USB? A usb pode não conseguir alimentar o motor. Tens de ter uma alimentação separada para o mtor. Segundo o esquema, isso aparece em V_in.
Depois, tens de verificar se as ligações estão correctas antes de meteres um código complicado...
Experimenta algo deste género:
//pinos para controlo do motor...
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
loop() {
if (Serial.available() >1) {
switch(Serial.read()) {
case 'a':
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
break;
}
case 'b':
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
break;
}
case 'c':
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
break;
}
case 'd':
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
break;
}
}
}
}
Depois envias as letras a, b, c e d para activar diferentes bobinas do motor. Se o motor rodar 90 graus sempre que envias cada letra, então as ligações estão correctas e a ordem de passo é 4, 5, 6, 7. Se vires que não é assim, tens de mudar os fios até obteres 90 graus de diferenca sempre que activas as bobinas na ordem a, b, c, d. Estás a ver a ideia?