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