Para fazer comentários é necessário estar logado. .
Você ainda nao é cadastrado?
rfgarcia
Enviado 2023-09-13 21:30:42
Boa noite, é possível utilizar este sensor, ou algum semelhante, para determinar a velocidade de deslocamento de um veículo?
luan.ferreira
Enviado 2023-09-14 13:23:57
rfgarcia
Olá! A escolha do sensor irá depender muito das características do seu projeto. Por exemplo, para esse tipo de aplicação, geralmente são usados dois sensores, um no início do percurso, e outro no fim, pois sabendo a distância do percurso, você pode calcular a velocidade do deslocamento a partir da leitura dos sensores.
denisrafaeldantas
Enviado 2023-01-20 21:52:12
como armazeno o valor distance em uma variavel? nao estou conseguindo
luan.ferreira
Enviado 2023-01-23 08:16:09
denisrafaeldantas
Para armazenar o valor lido pelo sensor, você pode criar uma variável do tipo int e, então, atribuir a ela o valor retornado da função “<sensor1.distance();>”.
mateusfranck
Enviado 2022-02-09 18:27:26
como pegar o valor do echo e colocar dentro do fluxo de condição??
Giovanni5
Enviado 2022-02-10 08:16:06
mateusfranck
Se você quer realizar a leitura do sensor ultrassônico sem o uso de biblioteca, pode se basear na lógica de leitura utilizada na biblioteca (arquivo "Ultrassonic.cpp" contido no arquivo ZIP do botão acima), juntamente com o datasheet do sensor (https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/620/HCSR04.pdf ), para entender melhor como fazer o cálculo de conversão.
mateusfranck
Enviado 2022-02-09 18:25:27
#include <Ultrasonic.h>
#define pino_trigger 7
#define pino_echo 6
Ultrasonic ultrasonic(pino_trigger, pino_echo);
void setup()
{
Serial.begin(9600);
Serial.println("Lendo dados do sensor...");
}
void loop()
{
//Le as informacoes do sensor, em cm e pol
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
não sei porque estou tendo dificuldade para converte o tempo em distancia sempre dar erro
Giovanni5
Enviado 2022-02-10 08:13:38
mateusfranck
A biblioteca "Ultrassonic" utilizada neste tutorial não possui as funções "timing()" e "convert()", apenas a função "distance()" que retorna o valor já convertido em centímetros. Se estiver utilizando outra biblioteca, é necessário ler a documentação dela para entender melhor como usar suas funções.
A_S_Falcao
Enviado 2021-09-14 18:50:55
Olá,
Escrevi um script simples baseado no exemplo do site.
#include "Ultrasonic.h"
// Arduino Mega Robocore
// Trigger = 26 Fio Azul
// Echo = 24 Fio Verde
HC_SR04 sensor(26, 24); //Configura os pinos sensor ultrassonico (Trigger, Echo)
void setup()
{
Serial.begin(9600);
Serial.println ("Hola, que tal!");
}
void loop()
{
Serial.print(sensor.distance()); //Exibe no terminal as medidas
Serial.println(" cm");
delay(100);
}
Resultado:
Hola, que tal!
0 cm
0 cm
Testei meses atrás com Arduino Uno e o teste foi OK. Troquei por sensor novo e o erro continua.Alguma dica?
A_S_Falcao
Enviado 2021-09-14 18:53:24
A_S_Falcao
Baixei a biblioteca do site e uso a IDE 1.8.15 com Arduino Mega Robocore Black. Jà usei os pinos 12 e 13 e 4 e 5 mas o erro continua.
Giovanni5
Enviado 2021-09-15 11:39:03
A_S_Falcao
Esta biblioteca não possui nenhuma incompatibilidade com as placas da plataforma Arduino Mega, e se os sensores estão funcionando com uma placa Arduino UNO, não há porque não funcionar com a Mega. Parece algo besta, mas algo que costuma impedir o funcionamento de sensores ultrassônicos é a inversão na conexão dos pinos trigger e echo.
A_S_Falcao
Enviado 2021-09-15 17:36:48
A_S_Falcao
Obrigado pela resposta.
Os fios estavam ligados da forma correta. Aí desconfiei dos jumpers e medi com um multímetro. Um deles tinha mau contato. Troquei o jumper e funcionou OK.
kurten
Enviado 2021-02-28 05:58:11
podem mostrar como fica a ligacao no LCD ?
Emanuelf
Enviado 2018-09-09 13:30:50
Boa tarde, estou montando um projeto de sensor de estacionamento, de modo que conforme a distancia seja apresentada num LCD aciona-se o buzzer em diferentes intervalos e acendem-se leds para indicar as faixas de proximidade com o obstaculo. Porém tenho me deparado com uma grande variação de leitura das medidas de modo que tem atrapalhado no acionamento dos leds e buzzer. Estou tentando coletar amostras de medidas, tirando a media entre elas mas o me programa não tem funcionado corretamente. Existem funções ou outras maneiras de coletar amostras mais confiaveis desse sensor?
Francois
Enviado 2018-09-10 16:13:14
Emanuelf
Este sensor é indicado para esse tipo de aplicação. Além da média móvel das leituras, é recomendado que você faça leituras com pelo menos 100 ms de intervalo entre elas. Esse tempo impede que uma leitura interfira na próxima. Verifique também as conexões, pois um mau contato pode prejudicar a leitura.
tonyf.eng
Enviado 2018-09-03 19:30:36
Boa noite!
Gostaria de saber se é possível calcular a quantidade de ML /Litros em uma caixa dágua, se sim...tem como enviar um sketch de exemplo? Obrigado.
ViniDj
Enviado 2018-09-04 09:54:21
tonyf.eng
Uma vez que você consegue relacionar a altura do líquido com o volume interno, fazendo uma regra de três simples você consegue saber quanto ele está cheio. Não temos um código pronto para isso, de toda forma com o estudo adequado você consegue chegar nesse código facilmente.
nicolygabricuch
Enviado 2018-08-29 09:48:32
Bom dia, estou fazendo um protótipo que tem como objetivo acionar o buzzer quando 1 dos sensores ultrassônicos for acionado, porém esta dando erro. O código que estou utilizando é esse:
#include <Ultrasonic.h>
//Define os pinos para o trigger e echo
#define pino_trigger1 4
#define pino_echo1 5
#define pino_trigger2 8
#define pino_echo2 9
#define buzzer 13
//Inicializa o sensor nos pinos definidos acima
Ultrasonic ultrasonic1(pino_trigger1, pino_echo1);
Ultrasonic ultrasonic2(pino_trigger2, pino_echo2);
void setup()
{
Serial.begin(9600);
Serial.println("Lendo dados do sensor...");
pinMode(buzzer,OUTPUT); //Pino do buzzer
}
void loop()
{
float cm1, cm2;
//Le as informacoes do sensor 1
long microsec1 = ultrasonic1.timing();
cm1 = ultrasonic1.convert(microsec1, Ultrasonic::CM);
//Le as informacoes do sensor 2
long microsec2 = ultrasonic2.timing();
cm2 = ultrasonic2.convert(microsec2, Ultrasonic::CM);
//Exibe informacoes no serial monitor
Serial.print("Distancia em cm sensor1: ");
Serial.println (cm1);
//Exibe informacoes no serial monitor
Serial.print("Distancia em cm sensor2: ");
Serial.println (cm2);
if (cm1 < 30) {
tone (buzzer,300,50 );
}
else {
noTone(buzzer);
}
delay(200);
}
e esta dando erro nesta linha: cm2 = ultrasonic2.convert(microsec2, Ultrasonic::CM);
alguém poderia me auxiliar?
Francois
Enviado 2018-08-29 11:55:46
nicolygabricuch
Verifique as conexões dos seus sensores e adicione um intervalo de tempo entre cada leitura (~100 ms), pois um sensor pode influenciar no outro.
lxaraujo
Enviado 2018-07-12 10:30:01
Bom dia. Estou desenvolvendo um AGV para funcionar em uma área industrial e vou precisar colocar 6 sensores ultrasonicos nele. Eu posso utilizar um pino apenas para fazer o trigger dos 6 simultaneamente e 6 pinos independentes para identificar o echo? Estou projetando o circuito para usar uma mega. Obrigado
ViniDj
Enviado 2018-07-12 12:13:39
lxaraujo
Talvez se puder usar mais pinos para trigger seja melhor, de toda forma, se conseguir fazer um software robusto talvez dê certo. Lembre-se que o HC-SR04 não é um sensor padrão industrial, portanto dependendo do ambiente pode ser necessário usar um sensor industrial.