Módulo Ponte H L298n e Motor de Passo Unipolar 28BYJ-48 5v

Boa tarde Garaginos, estou a dar em tolo, não consigo por nada controlar o motor de passo através do modulo ponte h l298n.

Já experimentei dezenas de maneiras mas nada :S

O modulo é igual a este:

E o motor é este:

Segui o seguinte exemplo:

AQUI

Mas nada, sinto o motor a vibrar mas não gira, já troquei os fios todos nos OUT1, OUT2, OUT3 e OUT4, mas nada.

Alguém consegue descobrir onde estou a errar?

Exibições: 8268

Responder esta

Respostas a este tópico

Alguém sabe dizer se preciso conetar o ENA e ENB para controlar o motor?

Por favor preciso mesmo de ajuda !!!

Não conheço bem essa placa, mas acredito que vc mantendo os straps onde estão não precisa comandar ele.

O que quer dizer com straps ? 

Consegue ser mais explicito, ?

Obrigado

Obrigado pela excelente resposta.

Já experimentei com ou sem o conetor mas não encontrei diferença :s

conhećo como jumper

Esse motor ele tem 2 bobina com 1 fio em comum, ou seja você vai ter que descobrir qual fio esta em comum com elas então deve energizar ele ou colocar ele no terra. Então os outros fios você deve colocar no shield na sequencia correta, assim que você acionar o shield ele vai por exemplo aterrar o fio daquela bobina especifica fazendo com que o motor de 1 passo e assim sucessivamente. 

O fio comum é o vermelho e estou a ligar nos 5v do modulo.

Quanto á ligação das bobinas fiz inicialmente seguindo o esquema do datasheet:

Depois troquei a sequencia dos fios para testar mas não consegui nada, consigo sentir o motor trabalhar mas não gira.

O meu problema acho que está na ligação do Módulo ao Arduino

O arduino tem que acionar as bobinas na sequencia correta se não ele fica vibrando mesmo,

por exemplo se você definiu no codigo os pinos 7,8,9,10 ai você coloca o 7 no in1, o 8 no in2 .....

também tem o lance da velocidade de rotação, geralmente esses motores não devem passar de 80 RPM

mas alem disso tenta inverter o terra e o fase, liga o vermelho no terra e no shield você manda o fase.

Lembrando que os enable tem que estar com os jumper conectado

Os Enables tem de ter os jumper mas não preciso coneta los ao arduino certo?

Eu tenho as ligações da seguinte forma:

Fio Azul - Out1

Fio Rosa - Out2

Fio Amarelo - Out3

Fio Laranja - Out4

Fio Vermelho (comum) - Gnd ou 5v do shield

In1 - Pin8 (arduino)

In2 - Pin9

In3 - Pin10

In4 - Pin11

Códigos usados:

// This Arduino example demonstrates bidirectional operation of a
// 28BYJ-48, using a ULN2003 interface board to drive the stepper.
// The 28BYJ-48 motor is a 4-phase, 8-beat motor, geared down by
// a factor of 68. One bipolar winding is on motor pins 1 & 3 and
// the other on motor pins 2 & 4. The step angle is 5.625/64 and the
// operating Frequency is 100pps. Current draw is 92mA.
////////////////////////////////////////////////

//declare variables for the motor pins
int motorPin1 = 8; // Blue - 28BYJ48 pin 1
int motorPin2 = 9; // Pink - 28BYJ48 pin 2
int motorPin3 = 10; // Yellow - 28BYJ48 pin 3
int motorPin4 = 11; // Orange - 28BYJ48 pin 4
// Red - 28BYJ48 pin 5 (VCC)

int motorSpeed = 1200; //variable to set stepper speed
int count = 0; // count of steps made
int countsperrev = 512; // number of steps per full revolution
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};

//////////////////////////////////////////////////////////////////////////////
void setup() {
//declare the motor pins as outputs
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
Serial.begin(9600);
}

//////////////////////////////////////////////////////////////////////////////
void loop(){
if(count < countsperrev )
clockwise();
else if (count == countsperrev * 2)
count = 0;
else
anticlockwise();
count++;
}

//////////////////////////////////////////////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed)
void anticlockwise()
{
for(int i = 0; i < 8; i++)
{
setOutput(i);
delayMicroseconds(motorSpeed);
}
}

void clockwise()
{
for(int i = 7; i >= 0; i--)
{
setOutput(i);
delayMicroseconds(motorSpeed);
}
}

void setOutput(int out)
{
digitalWrite(motorPin1, bitRead(lookup[out], 0));
digitalWrite(motorPin2, bitRead(lookup[out], 1));
digitalWrite(motorPin3, bitRead(lookup[out], 2));
digitalWrite(motorPin4, bitRead(lookup[out], 3));
}

-----------------------------------------Usei este também-----------------------------------------------------------------------

#include <Stepper.h>
const int stepsPerRevolution = 64;
Stepper myStepper(stepsPerRevolution, 8,9,10,11);

void setup() {
myStepper.setSpeed(200);
}

void loop() {
// velocidade por setSpeed()
for (int i = 0; i < 32; i++)
{
myStepper.step(64);
}
delay(1000);

for (int i = 0; i < 32; i++)
{
myStepper.step(-64);
}
delay(1000);
}

Mas continua sem funcionar

Sim o enable tem que estar com o jumper e somente os outros 4 in que tem que estar no arduino. Será que o problema não esta na resolução do seu motor? a grande maioria é de 200 passos por volta. outra coisa o shield funciona de forma diferente ao ULN então o mais certo seria você utilizar o ultimo programa aqui descrito.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço