Bom dia.
Estou montando um carrinho com arduino nano e tres sensores ultrassonicos HC-SR04 (para detectar obstáculos e quedas). Estou utilizando uma ponte H ln298 e 4 motores de 3 volts ligados a uma bateria de 9 volts 450mah.
Na minha programação, por algum motivo o carrinho anda quando programo para virar,
porém quando era pra ele rodar para frente ele não anda e não sei o motivo.
segue o código:carrinho_2.0.ino
Tags:
Bom dia Sr. COC, (se não gosta que te chame pelas iniciais, avise),
gostaria muito de te ajudar, mas para isto recomendo as seguintes ações:
1. Remova seu sketch da área de texto do seu tópico;
Remova todos!!!!!!
2. Clique em : " Arquivos " e depois anexe o arquivo com o seu sketch completo;
3. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
4. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer
com cada linha e facilita a ajuda.
Mas fique 'a vontade caso não queira seguir minhas recomendações.
RV
PS; Seria muito bom também que você disponibilizasse também o esquema do seu projeto.
Isto nos ajudaria te ajudar.
Reparou que no codigo o IN2 nunca esta em HIGH. Motor sem função alguma.
Revise sua logica de funcionamento.
DEBUG seu codigo por etapa, e vai testando.
Boa tarde COC,
gostaria muito de ver o esquema elétrico do seu projeto.
Razões.
1. Você diz que usa uma bateria de 9V (450mA) para alimentar seu projeto;
que os motores são para 3V;
e que está usando um arduino NANO.
Sem o esquema vou supor:
Como o Nano é para 5V, acredito que você está usando a entrada de VIN dele.
Esta entrada passa por um regulador LM1117, que baixa a entrada VIN para 5V,
mas faz isto a custo de um bom consumo.
As especificações que encontrei para este motor informam:
https://www.eletrogate.com/motor-dc-3-6v-com-caixa-de-reducao-e-eix...
Tensão de Operação: 3-6V;
Corrente sem carga: ≤200mA (6V) e ≤150mA (3V).
Se for este tipo de motor, e ao usa-lo com 5V e sem carga ele consume ~ 180 mA x 4 motores = 720 mA.
Mas ao colocar carga nele (movimento) a corrente deve subir bastante.
O que parece ocorrer é que quando o movimento é para frente a carga seja muita e a bateria
caia a voltagem para valores baixos, afetando o movimento.
Além disso, tem + o consumo dos 3 sensores + o consumo do arduino nano
RV
Bom dia COC,
revendo seu sketch, verifiquei que você usa 2 motores ligados ao modulo L298. Certo?
O ENA, IN1 e o IN2 controlam o movimento do motor A, e o ENB, IN3 e o IN4 controlam o
movimento do outro motor B. Certo?
Muito bem, com já te alertou o Sr. T ( THOMAZ ), o IN2 é sempre LOW, donde suponho que o
motor A ou vai estar parado ou manter rodando em um único sentido. Certo?
Mas IN1 está sempre HIGH, e também significa que o motor A vai estar sempre ligado, Certo.
Mas uma outra coisa ainda me intrigou.
O que você espera que este "comandos" façam:
digitalWrite(ENA, 0);
digitalWrite(ENB, 0);
digitalWrite(ENB, 80);
digitalWrite(ENA, 80);
digitalWrite(ENB, 120); ???????
https://www.arduino.cc/reference/pt/language/functions/digital-io/d...
RV
Olá Mineirin Rv. As correspondências entre os motores e a L298 estão certas. Sobre a sua pergunta, eu espero que o ENA e ENB com valor 0 parem o carrinho e os mesmos com valores 80 e 120 acelerem o os motores correspondentemente (as velocidades diferentes eram um teste para ver se havia diferença nas rotações dos motores gerando curvas não intencionais).
Não havia reparado que não havia usado analogWrite() para escrever essa parte, bem observado,obrigado.
Bom dia COC,
mesmo que você mude para analogWrite() não vai funcionar, pois os ports que você
está usando (#define ENA 7 e #define ENB 12) não são ´ports PWM do arduino.
Os ports PWM do arduino nano são os dos Atmega328, 3, 5, 6, 9, 10 e 11,
RV
Bom dia Mineirin RV,
Mudei os ports de posição e alterei o código para funcionar. Agora nas curvas ele tem a velocidade que eu programei, mas então estão acontecendo duas coisas.
1.Ordenei que caso a distancia registrada pelos sensores de altura fosse maior que 10 cm, então que o carrinho virasse, mas ele vira em valores como 3 ou 2 cm...
2. Parece que os comandos para seguir em frente não estão funcionando pois mesmo que o monitor serial mostre pra mim que o código está sendo lido, o carrinho não segue reto ainda...
Bom dia COC,
axexe o arquivo com o código atual.
RV
atualizei o arquivo.
Agora com a observação do Mineirin RV, consegui fazer o carrinho andar para frente, mas só quando crio um código somente para andar pra frente e virar uma vez, meu problema agora está sendo com (possivelmente) o código dos sensores...
Oi COC,
coloque um LED, preferencialmente de cores diferentes em cada port que acrescentei,
coloque um resistor de 680 Ohms em serie com cada um.
E veja se entende o que fiz no seu code, para facilitar o debug.
Cometi um erro na definição dos ports
Segue a versão corrigida.
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por