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

Exibições: 415

Anexos

Responder esta

Respostas a este tópico

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!!!!!!

2Clique 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

Eu achei estranho porque eu ligo o carrinho suspenso sem atrito com o chão e ele roda todas as rodas fazendo umas curva, mas quando ele teoricamente deveria ir para frente ele não faz nada. Não é estranho que apenas uma direção funcione. Vou disponibilizar o esquema em breve.

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.

carrinho_4.0.ino

RV

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço