Torque do Motor de Passo Nema 16 + Arduino AT Mega + EasyDriver

Olá pessoal.

Estou testando um motor de passo bipolar (tipo nema 16 4 fios) que comprei (usado) com um AT Mega, EasyDriver como controladora e uma bateria estacionária de 12v / 7amp. Acontece que o torque é tão fraco que seguro facilmente com a mão. Não consigo descobrir porque é tão fraco. Está mais fraco que um motor 28BYJ-48 (que já é bem fraquinho). Alguma sugestão? Será que preciso de um motor mais forte ou um driver diferente? Meu projeto é um rotor de azimute e elevação para rastrear satélites (antena VHF/UHF).

Abraços,

Eduardo

Exibições: 488

Responder esta

Respostas a este tópico

Boa noite EF,

posta um esquema de como está ligando tudo, e anexa um arquivo com o sketch que

você está carregando no Atmega.

RV

Este é o esquema que utilizei para ligar. Mais abaixo segue a foto do motor de passo e o sketch.


//////////////////////////////////////////////////////////////////
//©2011 bildr
//Released under the MIT License – Please reuse change and share
//Using the easy stepper with your arduino
//use rotate and/or rotateDeg to controll stepper motor
//speed is any number from .01 -> 1 with 1 being fastest –
//Slower Speed == Stronger movement
/////////////////////////////////////////////////////////////////

#define DIR_PIN 2
#define STEP_PIN 3

void setup() {
pinMode(DIR_PIN, OUTPUT);
pinMode(STEP_PIN, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
}

void loop(){

//rotate a specific number of degrees

rotateDeg(-90, .01); //reverse
delay(1000);}

void rotate(int steps, float speed){
//rotate a specific number of microsteps (8 microsteps per step) – (negitive for reverse movement)
//speed is any number from .01 -> 1 with 1 being fastest – Slower is stronger
int dir = (steps > 0)? HIGH:LOW;
steps = abs(steps);

digitalWrite(DIR_PIN,dir);

float usDelay = (1/speed) * 70;

for(int i=0; i < steps; i++){ digitalWrite(STEP_PIN, HIGH); delayMicroseconds(usDelay); digitalWrite(STEP_PIN, LOW); delayMicroseconds(usDelay); } } void rotateDeg(float deg, float speed){ //rotate a specific number of degrees (negitive for reverse movement) //speed is any number from .01 -> 1 with 1 being fastest – Slower is stronger
int dir = (deg > 0)? HIGH:LOW;
digitalWrite(DIR_PIN,dir);

int steps = abs(deg)*(1/0.225);
float usDelay = (1/speed) * 70;

for(int i=0; i < steps; i++){ digitalWrite(STEP_PIN, HIGH); delayMicroseconds(usDelay); digitalWrite(STEP_PIN, LOW); delayMicroseconds(usDelay); } }

EF, 

leia o que eu escrevi:

"""   """  anexa um arquivo com o sketch  """  """"

remova o sketch que colou na área de texto e e anexe como um arquivo.

RV

Não achei como editar a minha resposta e remover o texto. Estou axando o arquivo.sketch_may11a.ino

Olá. Alguma idéia do que pode estar errado?

EF

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço