Beleza gente!

Seguinte, estava montando um projeto de uma espécie de "controle" para um insetorobô, simples. No Robô, existem 2 servos de 9g (1.3kg.cm) e um sensor ultrassônico (HC-SR04 - 4 pinos). No "controle" são 4 pushbuttons, a Arduino Uno R3, LCD 16x2, potenciômetro para contraste e só.

O problema é o seguinte. Fiz o código para que o sonar mostrasse a distancia no LCD, perfeito, funciona. Consegui até remover o ruído do servo da leitura (usando jumpers daqueles "premium"), apenas um problema (provavelmente resolvível por código, não sei como) de o LCD não apagar a casa das centenas qdo passa para dezenas de cm, inclusive peço uma força para isso tbém.

Para a locomoção do bichin, fiz as funções de locomoção (frente, virar direita, ré-esquerda e centralizar servo) e associei casa uma a uma leitura de HIGH de um pushbutton (por função). Mas, quando aperto o PushButton, nada acontece. Usei os pushbuttons no exato mesmo lugar no mesmo layout de montagem para acender LEDs, como prova de conceito, mas agora, necas de pitibirica de funfar... Quem sabe alguém pelas fotos tem uma ideia e pode me dar uma luz nessa.

Foto geral, que mostra o robô, "controle" e o LCD-que-não-apaga-a-centena:

Foto que mostra a conexão dos pushbuttons, para vcs verem se a ligação está correta:

Abraços e valeu a ajuda!!!

Exibições: 1518

Responder esta

Respostas a este tópico

Esqueci do código! http://pastebin.com/mEYKv1Zj

Tulio, sobre o LCD, tente:

 

  lcd.setCursor(0, 1);

  if (distancia < 100)

    lcd.print(' ');

  if (distancia < 10)

    lcd.print(‘ ’);
  lcd.print(distancia);

 

Talvez resolva. Abraço!

César! Coloquei o código, revisei e por incrível que pareça não está funcionando. Eu não sei se fiz algo de errado...

Valeu! Abração

Ixi... qual o comportamento, agora?

Putz cara, mesma coisa!

Testei printar um espaço em branco em cada loop, nada. Tentei isso:

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distancia:");
lcd.setCursor(0, 1);
lcd.print(distancia);


Sem resultado. Tirei o delay(1000); antes, até para ver se resolvia o botão, troquei por millis, deixei sem, nenhuma diferença. Nem o botão, nem o LCD. Pensei em fazer um contador byte, ver quantas casas o número tem, se for menor que o anterior, zera. Mas não descobri nem como fazer o contador nem como zerar (limpar) sem resetar a Arduino ou desligar o LCD. VOu acabar ligando um 555 no power do LCD prele ficar piscando, haahhaa.


Valeu!

Tulio, quanto ao LCD, não faz sentido. O seu teste também deveria funcionar.

Tem como você desenhar um esqueminha de como ligou a chave?

Abraço!

RESOLVIDO:

O Problema do botão consistia em eu estar fazendo o curto do lado errado... bem coisa de iniciante! Liguei com o seguinte layout: (imagem do Cesar)

Quanto ao LCD, o seguinte código, de autoria do Cesar Osaka, ajudou:

 lcd.setCursor(0, 1);
  lcd.print("  ");
  lcd.setCursor(0, 1);
  lcd.print(distancia);

E na simulação pelo Simulino:

Então, obrigado aí Cesar pela ajuda!!!

Fica a dica então para todos, o Simulino é uma excelente ferramente para uso no Proteus!

Abraços

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço