Motor de passo + Arduino Romeo

Galera,

Estou fazendo um projeto onde preciso usar um motoro de passo, bom comprei esse:

E estou usando o programa:

/*
Stepper Motor Control - one revolution

This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 - 11 of the Arduino.

The motor should revolve one revolution in one direction, then
one revolution in the other direction.

Created 11 Mar. 2007
Modified 30 Nov. 2009
by Tom Igoe

*/

#include <Stepper.h>

const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 4,5,6,7);

void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed150);
// initialize the serial port:
Serial.begin(9600);
}

void loop() {
// step one revolution in one direction:
Serial.println(“clockwise”);
myStepper.step(stepsPerRevolution);

}

Para fazer o meu motor funcionar, como podem ver, estou usando as portas 4,5,6,7 e estou alimentando a placa arduino tanto com o usb, como com uma fonte externa 7,5V e 1A.

O motor vibra muito e não gira de jeito nenhum!!!
O que estou fazendo de errado???

Como ligaste o motor?

Liguei os cabos branco e preto em VCC (5 Volts), e o restante nas portas 4,5,6 e 7, esses eu tentei varias combinações diferentes mas todas deram na mesma!!!

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?

Os 5V, vem do Arduino, através de uma alimentação por uma fonte externa de 7,5 V e 1A. Entendi o que vc disse, vou tentar e ver no que da!!

Tentei fazer esse programa, mas o motor nem deu sinal de vida!!!

Ok... :\ Experimentaste a enviar letras pela serial?

Colocaste um Serial.print() para ver se a letra tinha sido reconhecida?