Monitor serial showing "ç"

Olá estou tentando construir um robo utilizando o sensor ultrassonico. ele deve ser capaz de desviar de obstaculos e andar sozinho. no entanto eu não consigo fazer o robô andar e nem ao menos fazer ele medir algum tipo de distância. Abaixo está uma imagem do que aparece no monitor serial. Não é problema de hardware porque já testei com programas exemplos do próprio arduino e tudo funciona bem. Também estou enviando um arquivo com o código utilizado e uma imagem da configuração dos fios.
ja tentei varios códigos diferentes, mas todos apresentam esse mesmo problema então deve ser alguma coisa que eu estou fazendo de errado. Desde já agradeço a ajuda

//Incluindo biblioteca Ultrasonic.h
#include "Ultrasonic.h"
//Criando objeto ultrasonic e definindo as portas digitais
//do Trigger - 9 - e Echo - 10

#define TRIGGER_PIN 9
#define ECHO_PIN 10

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
#define MotorLadoEsquerdo1 7
#define MotorLadoEsquerdo2 8
#define MotorLadoDireito1 4
#define MotorLadoDireito2 5
#define VelocidadeMotorLadoEsquerdo 6
#define VelocidadeMotorLadoDireito 3
//============================================================ Escolhe avelocidade dos motores==================================================================//
int ValorVelocidadeMotorLadoEsquerdo = 100;
int ValorVelocidadeMotorLadoDireito = 140;
void setup() {
//============================================================== Definições deentrada e saída===================================================================//
pinMode(MotorLadoEsquerdo1, OUTPUT);
pinMode(MotorLadoEsquerdo2, OUTPUT);
pinMode(MotorLadoDireito1, OUTPUT);
pinMode(MotorLadoDireito2, OUTPUT);
Serial.begin(115200);// Inicia a comunicação seria com velocidade de 115200 bits por segundo
delay(3000);// Tempo de espera para inicialização (para dar tempo de por o robô no chão)
}
void loop() {
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
//Convertendo a distância em CM e lendo o sensor
SensorUltrassonico1.convert(SensorUltrassonico1.timing(),Ultrasonic::CM);
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
Serial.print(cmMsec);
Serial.println(" cm");
if (cmMsec <= 40) {// Se a distância lida pelo sensor for menor ou igual que 40 centimetros
//Velocidade motor lado esquerdo
analogWrite( VelocidadeMotorLadoEsquerdo, ValorVelocidadeMotorLadoEsquerdo);
//Velocidade motor lado direito
analogWrite( VelocidadeMotorLadoDireito, ValorVelocidadeMotorLadoDireito);
// Motor lado esquerdo para trás
digitalWrite(MotorLadoEsquerdo1, HIGH);
digitalWrite(MotorLadoEsquerdo2, LOW);
// Motor lado direito para trás
digitalWrite(MotorLadoDireito1, HIGH);
digitalWrite(MotorLadoDireito2, LOW);
delay(700);// Tempo que ficará indo para trás
// Motor lado esquerdo para frente
digitalWrite(MotorLadoEsquerdo1, LOW);
digitalWrite(MotorLadoEsquerdo2, HIGH);
// Motor lado direito para trás
digitalWrite(MotorLadoDireito1, HIGH);
digitalWrite(MotorLadoDireito2, LOW);
delay(200);// Tempo que ficará indo para o lado direito
}
else {// Se não, ou seja, se a distância for maior que 40 centimetros
//Velocidade motor lado esquerdo
analogWrite( VelocidadeMotorLadoEsquerdo, ValorVelocidadeMotorLadoEsquerdo);
//Velocidade motor lado direito
analogWrite( VelocidadeMotorLadoDireito, ValorVelocidadeMotorLadoDireito);
// Motor lado esquerdo para frente

digitalWrite(MotorLadoEsquerdo1, LOW);
digitalWrite(MotorLadoEsquerdo2, HIGH);
// Motor lado direito para frente
digitalWrite(MotorLadoDireito1, LOW);
digitalWrite(MotorLadoDireito2, HIGH);
}
}


a configuração dos fios está aqui

Olá,
Em princípio, falta código para ver se há algo errado ou não.
Esse esquema de montagem está completamente errado, você está alimentando os motores e o sensor com o pino VIN, que é um pino de entrada para alimentar o nano se você não usar a porta USB. Você nunca terá nenhuma tensão de saída nesse pino. É utilizado para alimentar o nano e admite tensão entre 5 a 12V.
Você tem que usar o pino de 5V mas com muito cuidado já que não admite alto consumo, e seus motores são de consumo muito alto para o regulador interno do nano, você terá que alimentá-los com o power bank externo.
Como você tem a placa de ensaio montada, você deve conectar o banco de potência às linhas positivas e negativas que você já instalou.
saudações

1 Like

Você tem razão, desculpe eu copiei o código errado e não notei. e sim eu to usando um power bank para alimentar o robô

E no robô tabien você usa o VIN?

1 Like

sim, ta tudo conectado no vin e logo no power bank

isso poderia causar o erro no monitor serial?

Poderia ser. Como exatamente você conecta o power bank?

o power bank é um carregador de celular portatil q conecta via usb ao nano. mas até quando eu conecto direto no computador não há diferença nenhuma

Como expliquei antes, se você conectar a alimentação através da porta USB no pino VIN, você não terá nenhuma tensão e não estará alimentando nem o sensor nem os motores. O circuito de conexão correto seria aquele que você fez na placa de ensaio e o banco de potência para as linhas positivas e negativas na placa de ensaio. É por isso que você obtém aquele erro, você não tem nem o sensor nem os motores ligados.

entendi, entao vou alimentar os motores com algumas pilhas que tenho aqui e conectar o sensor no pino de 5V. volto logo para falar se teve alguma mudança

Não se esqueça de conectar os dois GND.

eu não posso simplesmente conectar os motores a um conjunto de pilhas? preciso conectar ao GND do nano?

Não, você tem que se juntar aos dois GNG. Pense que se não fosse assim, as correntes fornecidas pelo nano para controlar o módulo do motor não poderiam retornar para ele, seria como um circuito aberto.

certo, conectei o negativo da bateria naquela mesa de ensaio e dela conectei a ponte L298N e ao GND do nano. Conectei também o sensor ao pino de 5V e agora vou testar tudo

a ponte começou a apitar. isso é normal? ja desconectei

Não creio que não,. Vamos começar novamente. Veja o esquema que você colocou antes. Do jeito que está, a bateria de 5 V conecta o + ao vermelho e o - ao preto.

Me desculpe mas cometi um erro, tudo o que eu disse antes está bom mas o L298N está mal conectado, o positivo da sua fonte de alimentação não vai para aquele parafuso, ele está conectado à esquerda do GND.

sim eu ja tinha visto isso, mudei o parafuso e a ponte parou de apitar, mas ambos sensor e ponte estão sendo alimentados pelo pino de 5V.

O pino 5V não tem potência suficiente para alimentar os motores, você deve voltar à montagem que tinha na imagem que carregou anteriormente. Considerando o que eu disse