Bom dia.

Sou iniciante e estou com um grande problema.

Estava testando algumas coisas com meu MotorShield que é um igual a este: http://dx.com/p/arduino-compatible-2-channel-relay-shield-module-13...

e de uma hora para outra nas saídas(4, 8, 12) que o Arduino usa para fazer funcionar o shield a voltagem cai absurdamente de 5V para 2V e assim os CI`s do MotorShield não são ligados por falta de energia.

Como eu descobri que as saídas estavam com voltagem baixa:

Removi o MotorShield e tudo que estava conectado no Arduino e fui com o Multímetro testando todas as saída e obtive baixa saída nas saídas 4,8 e 12 que são as que ligam os motores.

Agora o grande problema:

Quando eu retiro a linha de programação

motor.run(FORWARD);

todas as saídas ficam normais com seus 5V.

Pensei então em trocar na biblioteca as saídas utilizadas para alimentação do shield e assim fiz:

troquei a 4 pela 6, a 8 pela 5 e a 12 pela 9.

E quando boto pra rodar o programa a Voltagem do Arduino caem nessas portas(5, 6 e 9) de 5V para 2V.

Não tenho idéia do que seja, fico muito grato se alguém puder me ajudar.

Obrigado,

Amauri

Exibições: 1588

Responder esta

Respostas a este tópico

Amauri.

Vamos por partes.

Carregue o exemplo Blink e troque o pino de acionamento do LED pelas portas que você já usou com este shield. Inicialmente meça as tensões nestas portas a cada teste. Depois ponha um resistor de 330 Ohms e um LED em série nas saídas de cada uma dessas portas.

Com isso você verificará se quem está com problemas seja o seu Arduino.

Se estiver tudo correto (As tensões variam de acordo com o padrão TTL) e o LED piscar intermitentemente em todas as portas, isso quer dizer que seu Arduino está perfeito. Se houver problema com alguma porta, ou com todas, existe altas chances de seu Arduino ter "ido pro espaço"...

Agora, seu Arduino estando Ok. Pegue cada motor e teste liga-los em uma fonte que possa alimenta-los. Inverta os fios para ver se o motor está girando em ambos os sentidos (horário/anti-horário). Se em alguma dessas combinações eles não girarem, existe altas chances de seus motores estarem com problemas (principalmente, podem ter curtos).

Se descartados problemas no Arduino e nos motores...só sobra a opção: O Shield está com algum problema.

Pelo modelo, provavelmente pode ser trocados os CIs deste shield para descobrir qual está com problema.

Trocando-os pode se proceder a instalação dos shields e da compilação de um sketch que realmente funcione (precisa procurar na internet, ou seguir o tutorial aqui do laboratório de garagem).

Antes de ligar novamente tudo, meça com um multímetro a resistência existente entre o Vcc  e o GND de todo o circuito. Tenha muito cuidado se estiver com menos que 1 KOhm.

Boa sorte.

Eu testei o arduino e ele está normal, testei o CI's dos MotorShield e também estão normal, motor também normal.

A minha maior dúvida é, porque quando adicionado

motor.run(FORWARD);

na programação a voltagem cai tanto e quando retirado a voltagem volta ao normal.

Isso esta muito estranho.

Estou partindo de uma Sketch de exemplo a MotorParty.

Pesquisei aqui e na internet e acredito que não esteja errado minha programação,

esta muito básica, estava funcionando até agora, porque parou?

Estranho

Minha Sketch:

#include <AFMotor.h>

// DC motor on M1
AF_DCMotor motor (1);
void setup() {

}

// Turn on DC motor
void loop() {
motor.run(FORWARD);

}

Mais básico que isso impossível.. ahahha

Esta resistência que você me disse para verificar, esta de 1 KOhm, no shield? no arduino?

Obrigado,

Amauri

 

Testa no circuito como um todo, mas sem alimenta-lo, entre o Vcc e o GND.

Detalhe: "testei o CI's dos MotorShield"

Como vc. está fazendo isso? Tirando os CIs e testando-os individualmente?

Se estiver "testando-os" no circuito que está "dando problema" vc. pode estar testando errado.

 

Eu retirei cada CI e montei um circuido individual na protoboard fazendo isso para os 3.

E todos cumpriram suas funções, perfeitamente.

Abraços,

Amauri

Vc. tentou ligar os motores nestes circuitos da protoboard?

Mediu as tensões das saídas dos L293 na protoboard tambem?

Com qual tensão vc. está alimentando o circuito da protoboard?

A fonte tem corrente suficiente para estes motores?

De qua(l/is) pino(s) do Arduino vc. está "puxando" a energia para alimentar os motores?

Se desligar os motores e tentar rodar com um multímetro ligado nas saídas para os motores, aparecem tensões positivas e negativas (quando está fazendo estes testes na proto)?

Quando coloquei os CI's na protoboard, sim eu liguei os motores.

estou alimentando o circuito da protoboard com 5V e está saindo normal.

A fonte que uso para MotorShield + arduino + motores são 2 baterias de 9V.

Estou puxando dos pinos 4,7,8 e 12 mas o 7 não apresentou defeito.

Quando eu ligo o conjunto com o Multimetro ligado direto no lugar dos motores, eu obtenho tensões horríveis, 0,17V e -0,17V ou seja o shield esta funcionando normal, o que não esta funcionando são as portas do Arduino que não tem tensão suficiente para ativar os CI's da placa. Mas as portas só não funcionam neste caso específico, em todos os outros elas funcionam.

Cara o problema esta no ATMEGA328 acredito eu pois estou fazendo várias programações para testar meu ATMEGA e todas estão normal só quando adiciono a seguinte linha de programação acontece isso das portas ficarem com tensão baixa e eu testo isso tirando toda parafernalha (motorshield + motores), testo direto da saída do arduino:

motor.run(FORWARD);

qualquer outra programação funciona normalmente e as portas trabalham normal.

Abraços,

Amauri

Esse motorshield tem um jumper (PWR), quando ligado é usada a mesma alimentação do Arduino para o shield, quando desligado a a alimentação do Arduino é separada do shield e para alimentar o shield você deve ligar a alimentação dos motores na barra EXT_PWR. Para alimentação do shield tem que ser uma fonte de boa potência, baterias comuns iram descarregar rapidamente. 

Isso faz sentido, já ví shields não funcionarem por causa disso.

Eu não tinha pensado também Euclides, foi um fator que não levamos em conta. rsrs

Obrigado,

Amauri

Não tinha nem idéia disso Luís, vou testar e já posto a resposta. Você pode me passar alguma idéia de fonte?

Obrigado,

Amauri

Luís, colocando aqui meu test FINAL, deu certo, não sei ao certo o porquê mas deu certo.

Muito obrigado pela dica e como eu disse sou um iniciante.

Erro de iniciante mesmo...

rsrs

Agradeço novamente,

Amauri

Não estaria faltando o setup do motor?

motor.setSpeed(); (dentro dos parenteses coloque 100 por exemplo)
motor.run(RELEASE);

É apenas um palpite =D

Abraço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço