LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: Antonio Marques em 21 de Março de 2015, 17:04

Título: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 17:04
Boas, estou a construir um robot com o arduino uno, 4 motores dc(6v) tenho uma ponte H e tudo corre bem enquanto estou a testar com o cabo usb ligado ao pc, o problema chega quando testo mas com as baterias lipo 3s 2200mah, mas com um regulador de tensao 7806, o arduino nao responde da mesma forma, qual sera o problema?
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Njay em 21 de Março de 2015, 17:28
Tens que fazer um diagrama das ligações, o que é que está ligado a quê e como.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 18:35
Tenho o Arduino Motor Shield L293D que tem 4 saidas para motores dc, neste caso de 6v, para alimentar o circuito tenho uma bateria de 11,1v lipo 3s 2200mah ligado a um 7806 para baixar a tensao para os 6v 1A que me parece ser suficiente, pino 1 ligado ao + da bateria, pino 2 - comum entre a bateria e saida para o adaptador para ligar arduino, pino 3 liga + adaptador para ligar arduino.
As ligações dos motores é o normal, motor1 + e -, etc...
O que se passa é:
- anda para a frente
- espera 10 sec
- anda para traz
- espera 10 sec
Com o cabo usb ligado nao ha problema, com a alimentaçao ligada nao tem o comportamento esperado.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Njay em 21 de Março de 2015, 18:51
Tens que fazer um diagrama António, isso é muito texto e nem sei o que é o pino 1 do 7806. As pessoas raciocinam 10x ou mais melhor quando estão a olhar para um diagrama/esquema, em electrónica os designs transmitem-se graficamente e não em texto.

E tens também que descrever o problema em detalhe, "não tem o comportamento esperado" não é nada. Quando vais médico o que é que lhe dizes, "estou doente"? Tens que descrever os sintomas!
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Nunito em 21 de Março de 2015, 19:05
Tenho o Arduino Motor Shield L293D que tem 4 saidas para motores dc, neste caso de 6v, para alimentar o circuito tenho uma bateria de 11,1v lipo 3s 2200mah ligado a um 7806 para baixar a tensao para os 6v 1A que me parece ser suficiente, pino 1 ligado ao + da bateria, pino 2 - comum entre a bateria e saida para o adaptador para ligar arduino, pino 3 liga + adaptador para ligar arduino.
As ligações dos motores é o normal, motor1 + e -, etc...
O que se passa é:
- anda para a frente
- espera 10 sec
- anda para traz
- espera 10 sec
Com o cabo usb ligado nao ha problema, com a alimentaçao ligada nao tem o comportamento esperado.
Faz um desenho nem que seja no paint.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 19:17
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2FCircuito-2-motores-DC-Motor-Shield-L293D.png&hash=8fd4c94423b309ee14bd0345a5deaa9f)Nao esta grande coisa.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 19:27
O codigo que estou a testar é este:
#include <AFMotor.h>

// Define o motor1 ligado a conexao 1
AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(2,MOTOR12_1KHZ);
// Define o motor2 ligado a conexao 4
AF_DCMotor motor3(3,MOTOR34_1KHZ);
AF_DCMotor motor4(4,MOTOR34_1KHZ);
 int i=0;
 
void setup()
{
  // Define a velocidade maxima para os motores 1 e 2
  motor1.setSpeed(255);
  motor2.setSpeed(255);
  motor3.setSpeed(255);
  motor4.setSpeed(255);

}


 
void loop ()
{
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);
  delay(10000);
 
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
  delay(2000);
 
  motor1.run(BACKWARD);
  motor2.run(BACKWARD);
  motor3.run(BACKWARD);
  motor4.run(BACKWARD);
  delay(10000);
 
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
  delay(2000);
}

Normalmente ele deveria andar para a frente 10 sec, parar 2 sec, andar para traz 10 sec, parar 2 sec e voltar a fazer o ciclo, certo?
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Nunito em 21 de Março de 2015, 19:32
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2FCircuito-2-motores-DC-Motor-Shield-L293D.png&hash=8fd4c94423b309ee14bd0345a5deaa9f)Nao esta grande coisa.
Onde ligas a alimentação dos motores?
Porque não ligas a lipo directa ao arduino, esquece esse 7806...
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 19:40
O arduino faz alimentacao dos motores.
Os motores sao de 6v, se alimento o arduino a 12v os motores nao vao aguentar muito tempo, certo?
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: dropes em 21 de Março de 2015, 20:04
Minha net está a 128kbps mas não interessa a ninguém, por isso nem vou procurar a datasheet do arduino.
Mínima tensão de alimentação = 5V + Dropout Voltage (2V)= 7V
Com 6V não funciona... e colocar reguladores lineares em série para baixar o consumo é... esquece

ps: não é assim que se liga um regulador 780x
Código: [Seleccione]
ps2: ao postar existe um símbolo # que ajuda a inserir código aqui
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 20:46
Sim, es capaz de ter alguma razao, mas eu sou iniciante e preciso é de solucoes, claro que se vai desperdicar metade da potencia, mas volto a dizer estou so a testar, ja experimentei alimentar os motores externamente, sem ser pelo arduino, o problema persiste, nao me parece ser por ai, solução????
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Njay em 21 de Março de 2015, 20:57
Nao esta grande coisa.
Ahh, tá bom, mto melhor! Agora já qualquer um sabe do que estás a falar.

Experimenta ligar o arduino directamente à bateria (~12V) e a saída do 7806 liga ao shield (acho que o shield dá para fazer isso, não verifiquei; podes ter que mudar algum jumper, tens que ver na documentação do shield).

Se o 7806 escaldar ao toque tens que meter um dissipador. Ele não avaria por ficar muito quente, mas começa a desligar e a ligar muito rápido o que resulta num comportamento "estranho".

Também podes baixar a velocidade dos motores, tens isso no máximo.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 21:01
Sim ja experimentei isso, vai dar ao mesmo, será que é o arduino uno que nao tem capacidade de processamento?
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Njay em 21 de Março de 2015, 21:09
Ainda não explicaste quais são os sintomas do problema.

Não é falta de capacidade de processamento, isso que queres fazer não usa nem 0.5% do CPU do arduino.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 21:37
Olhando para o codigo que postei em cima, ele deveria andar para a frente durante 10 sec, parar durante 2 sec, recuar durante 10 sec e parar durante 2 sec, e repetir o ciclo, certo?
O problema é esse ele anda para a frente ai uns 3 sec depois fica parado ai uns 10 sec anda para traz un pouco e pára, é este o ciclo que executa.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: senso em 21 de Março de 2015, 22:03
Usa os pinos de Vin do shield, estão lá para alimentar os motores directamente.
Se estás com medo da voltagem, estás a usar pwm, logo é só regular a coisa que os motores não explodem.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Nunito em 21 de Março de 2015, 22:17
Olhando para o codigo que postei em cima, ele deveria andar para a frente durante 10 sec, parar durante 2 sec, recuar durante 10 sec e parar durante 2 sec, e repetir o ciclo, certo?
O problema é esse ele anda para a frente ai uns 3 sec depois fica parado ai uns 10 sec anda para traz un pouco e pára, é este o ciclo que executa.
Não são 3 segundos, quanto ao ficar parado durante 10 segundos, está correcto, verifica lá o código novamente.
Arranca---faz o código que lá está---de seguida---espera os tais 10segundos
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Njay em 21 de Março de 2015, 23:06
Reparaste se o arduino faz reset durante o funcionamento (acho que ele pisca o led quando arranca)?

Experimenta seguir a sugestão do Nunito, mas tens que baixar a velocidade dos motores para um pouco menos de metade.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 21 de Março de 2015, 23:20
Boa pode ser isso, estava a pensar que ao fazer delay(10000); depois do FORWARD ele mantinha marcha em frente durante 10 sec, mas entao como é que posso fazer com que ele siga em frente durante 10 sec?
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 22 de Março de 2015, 14:02
Esta resolvido, obrigado pela ajuda.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: senso em 22 de Março de 2015, 15:36
Podias dizer qual é que foi a solução.....
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 22 de Março de 2015, 16:27
Como disses-te senso uso o pwm para controlar a velocidade, alimento o L239 com os 5v do arduino e com duas das portas digitais controlo o sentido.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: dropes em 22 de Março de 2015, 20:08
Isso cheira-me que a biblioteca tem bugs ou que o código não foi o adequado para ela.
Mais uma maravilha.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 22 de Março de 2015, 22:51
Tambem pensei nisso, mas nao me parece, com dois motores o codigo funciona bem, começo achar o shield é que nao e grande espingarda, pelo menos para estes motores, vou tentar com dois shield's.
Nao posso ter os motores ligados aos pinos do arduino, se cada pino deixa passar ate 40ma, os motores cada um consome pelo menos uns 200ma.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: jm_araujo em 23 de Março de 2015, 10:38
Tens as alimentações mal feitas.
Os 5V do Arduino não é suposto alimentar motores, é para dar problemas e arriscar até queimar qualquer coisa.

Se tiveres o Arduino alimentado pelo PC, deves usar uma fonte externa ligada à alimentação do shield (que podem até ser pilhas, se dizes que os motores são de 6v, 4xAA são baratas e fáceis de arranjar). Há PCs que suportam mais que 500mA nos 5V USB, mas também há os que estão mal protegidos e podem queimar. E picos indutivos de motores a entrar pela USB é um grande risco para todo o PC.


Se estás a alimentar o Arduino pelo jack a tensão mínima recomendada é segundo datasheets 5V+1.2V(regulador a 800mA)+1.1V(díodo a 1A)= 7.3V. Com 7V safas-te para a maior parte dos casos.
A 6V ainda é capaz de funcionar porque as perda no regulador e díodo diminuem com a corrente, mas SEM CARGA.  O arduino vai fazer reset mal seja solicitada mais corrente, e com motores são sempre valores consideráveis.

No teu caso o que podes fazer também é ligar os 12V ao arduino e o regulador de 6V ao shield do motor (tens de meter condensadores sempre que usas um 78xx). Ou então ligas os 12V ao shield também e não deixas a velocidade controlada por PWM passar dos 50% (que no teu código deve ser meter os setspeed a 127).



Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 23 de Março de 2015, 23:23
Ja tentei tudo o que foi sugerido, tambem ja experimentei ligar os motores em serie, mas nao consigo que os 4 funcionem correctamente, com tres a coisa ainda vai.
Mas estive a dar uma olhada nas características do shield e talvez nao seja compativel com o arduino uno, digo talvez porque nalguns sitios dizem que é compativel noutros dizem que foi testado e tem compatibilidade com o arduino mega.
Se puderem dar sugestoes de shields para por os 4 motores a funcionar, agradeço.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: senso em 23 de Março de 2015, 23:29
Tens de ligar a bateria directamente aos pinos de alimentação da bateria e não andar com reguladores pelo meio, e provavelmente o problema é simplesmenta falta de corrente...
Já fizeste como disse o Njay, verifica que quando o Arduino se "passa" não pisca o led por ter feito reset.

Outra coisa, arduino com atmegas, tens dois sabores, um tem um atemga328p e tem o formato do duemilanove e do uno, o outro tem o tamanho do mega, ou seja, é maior, mas são exactamente iguais..
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 23 de Março de 2015, 23:36
Sim ja liguei directamente as baterias sem o regulador de tensao, baixei o pwm no setspeed para 120, 130, ja experimentei com uma bateria de 7,4v, apenas consigo que tres deles funcionem quando junto os 4 deixa de funcionar.
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Njay em 23 de Março de 2015, 23:38
O L293 só dá para 0.6A, isso para 4 motores, ou 2, mesmo pequenos, em carga, pode ser pouco. Dizes que consomem 200mA mas se não mediste então mede, em carga (a tentar prender o veio do motor), e logo vês a surpresa.
Juntas os 4 como? Diagrama de ligações s.f.f. :)
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 24 de Março de 2015, 00:00
Quando digo que junto os 4, quero dizer ligo os 4.
Estive a medir o valor mais baixo foi de 0.55A depois registei valores de 1A, 1,15A, 0,85A, o multimetro nao deve estar bom!!
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: senso em 24 de Março de 2015, 00:59
Ai está bom está.
Os 200mA é em vazio.

Ele liga 4 motores, simplesmente porque o shield tem dois L293D.
http://playground.arduino.cc/Main/AdafruitMotorShield (http://playground.arduino.cc/Main/AdafruitMotorShield)
Título: Re: Ajuda - Problemas com motores no arduino
Enviado por: Antonio Marques em 24 de Março de 2015, 19:24
Boas, esta resolvido, as livrarias é que nao sao boas para este shield pelo menos, experimentei o codigo que esta no link que o senso postou e funtastico, funciona.
Agradeço a todos as dicas e opiniões.