Go Down

Topic: Motor de passo + Arduino Romeo (Read 1 time) previous topic - next topic

godegodes

Oct 17, 2012, 04:29 pm Last Edit: Oct 17, 2012, 04:31 pm by godegodes Reason: 1
Galera,

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

http://multcomercial.com.br/pdf/motores/motor25.pdf

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???

bubulindo

This... is a hobby.

godegodes

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!!!

bubulindo

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:

Code: [Select]



//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?

This... is a hobby.

godegodes

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!!

godegodes

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

bubulindo

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

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

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy