LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado por: Silvio Severino em 30 de Setembro de 2011, 20:23
-
ola pessoal realizei um robô aonde utilizei 6 motores http://www.pololu.com/catalog/product/1102 (http://www.pololu.com/catalog/product/1102), que são controlados por 3 drives http://www.ptrobotics.com/product.php?id_product=828 (http://www.ptrobotics.com/product.php?id_product=828).
Para alimentar os motores usei 2 baterias http://www.ptrobotics.com/product.php?id_product=584 (http://www.ptrobotics.com/product.php?id_product=584), mas os motores não têm grande potencia, mal meto o dedo numa roda a travar o seu movimento o motor para.
Que devo fazer????
-
São 6 motores, e os motores dizem isto:
Key specs at 12 V: 500 RPM and 300 mA free-run, 84 oz-in (5 kg-cm) and 5 A stall.
Isso dá no pior caso 5*6 = 30A de corrente.
As tuas pontes H dizem isto:
Output current: Iout=1.2A(average) / 3.2A (peak)
E por fim tens duas baterias, que se forem ligadas em paralelo tens supostamente 5200mAh.
Assim tudo junto diria que as tuas pontes H não têm capacidade para fornecer a corrente que os motores precisam e as tuas baterias muito provavelmente baixam a voltagem quando lhe pedes muita corrente.
Já agora, isso acontece se ligares o motor directo á bateria?
-
São 6 motores, e os motores dizem isto:
Key specs at 12 V: 500 RPM and 300 mA free-run, 84 oz-in (5 kg-cm) and 5 A stall.
Isso dá no pior caso 5*6 = 30A de corrente.
As tuas pontes H dizem isto:
Output current: Iout=1.2A(average) / 3.2A (peak)
E por fim tens duas baterias, que se forem ligadas em paralelo tens supostamente 5200mAh.
Assim tudo junto diria que as tuas pontes H não têm capacidade para fornecer a corrente que os motores precisam e as tuas baterias muito provavelmente baixam a voltagem quando lhe pedes muita corrente.
Já agora, isso acontece se ligares o motor directo á bateria?
Ainda não experimentei ligado as baterias visto que montei tudo e depois e que testei tudo ligado.
Que recomendas!!!
Mudar para pontes H convencionais com uma maior capacidade para fornecer corrente?
E meter mais uma bateria em paralelo?
-
Então e testas-te com o pwm a fundo?
-
Então e testas-te com o pwm a fundo?
Sim testei com o PWM a fundo mas não se nota alteração....
Que sugeres!!
-
uma coisa estas a usar as duas baterias em paralelo? para alimentar os motores certo?
-
uma coisa estas a usar as duas baterias em paralelo? para alimentar os motores certo?
Sim as duas baterias estão em paralelo.
Acho estranho como os motores têm caixa de redução, ao reduzir a sua velocidade com a relação de transmissão deviam ter mais potencia de tracção.
Que sugerem!!!
Mudar de Pontes H??
-
testa so com um motor em funcionamento
-
O programa que estou a usar é este:
#define LED 1
int PWMA = 6;
int AIN1 = 13;
int AIN2 = 12;
int BIN1 = 10;
int BIN2 = 8;
int PWMB = 9;
int STBY = 11;
int speed_val=255;
#include <Servo.h>
Servo servo1;
int GRAUS = 0;
//--- so se realiza ao iniciar o programa-----
void setup()
{
pinMode(PWMA,OUTPUT);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(PWMB,OUTPUT);
pinMode(BIN1,OUTPUT);
pinMode(BIN2,OUTPUT);
pinMode(STBY,OUTPUT);
pinMode(LED,OUTPUT);
Serial.begin(9600);
Serial.println('x', BYTE);
speed_val = 255;
M1_stop() ;
M2_stop() ;
GRAUS=0;
}
//----------------------------------------
void loop()
{
if(Serial.available()>0)
{
long A=Serial.read();
digitalWrite(LED,HIGH);
if (A== 'n') // se cicar na tecla 'n' incrementa 10 uindades a velocidade
{
speed_val = speed_val + 10;
test_speed();
}
if (A=='m') // se cicar na tecla 'm'retira 10 uindades a velocidade
{
speed_val = speed_val - 10;
test_speed();
}
if (A=='8') // se cicar na tecla '8' o robo anda em frente
{
M1_forward(speed_val);
M2_forward(speed_val);
delay(80);
}
if (A=='2') // se cicar na tecla '2' o robo anda para traz
{
M1_reverse(speed_val);
M2_reverse(speed_val);
delay(100);
}
if (A=='4')// se cicar na tecla '4' o robo vira para a direita
{
M1_reverse(speed_val);
M2_forward(speed_val);
delay(100);
}
if (A=='6')// se cicar na tecla '6' o robo vira para a esquerda
{
M1_forward(speed_val);
M2_reverse(speed_val);
delay(100);
}
else if (A=='i')// se cicar na tecla 'i' sobes a camara 10 unidades
{
GRAUS= GRAUS + 10;
test_GRAUS();
servo1.write(GRAUS);
delay(100);
}
if (A=='k') // se cicar na tecla 'k' desces a camara 10 unidades
{
GRAUS= GRAUS - 10;
test_GRAUS();
servo1.write(GRAUS);
delay(100);
}
else
{
M1_stop();
M2_stop();
digitalWrite(LED, LOW);
delay(100);
}
}
}
//------ teste da velocidade------------------
void test_speed()
{
if (speed_val > 250)
{
speed_val = 255;
}
if (speed_val < 0)
{
speed_val = 0;
}
}
//-----teste da posição da camara-----------
void test_GRAUS()
{
if (GRAUS > 180)
{
GRAUS = 180;
}
if (GRAUS < 0)
{
GRAUS = 0;
}
}
//-----Funções de Movimento---------------------------------
void M1_reverse(int x)
{
digitalWrite(STBY,HIGH);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, x);
}
void M1_forward(int x)
{
digitalWrite(STBY,HIGH);
digitalWrite(BIN2, LOW);
digitalWrite(BIN1, HIGH);
analogWrite(PWMB, x);
}
void M1_stop()
{
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
digitalWrite(PWMB, LOW);
}
void M2_forward(int y)
{
digitalWrite(STBY,HIGH);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, y);
}
void M2_reverse(int y)
{
digitalWrite(STBY,HIGH);
digitalWrite(AIN2, LOW);
digitalWrite(AIN1, HIGH);
analogWrite(PWMA, y);
}
void M2_stop()
{
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
digitalWrite(PWMA, LOW);
}
//--- Fim ---------------------------------
Significa se carregar-mos na tecla:
8 o robô anda para a frente,
2 anda para traz,
4 vira para a esquerda,
6 vira para a direita
n aumenta a velocidade
m diminui a velocidade
i roda o servomotor para cima
k roda o servomotor para baixo
Gostava que dessem uma olhada e proponham melhorias...
Cumps,
Sílvio Severino
-
Mete simplesmente um sketch que mete os motores a rodar com pwm a fundo, e testa, e testa com os motores directos á bateria sem a ponte H.
-
Mete simplesmente um sketch que mete os motores a rodar com pwm a fundo, e testa, e testa com os motores directos á bateria sem a ponte H.
Qual a ponte h que recomendas para este tipo de motores ???