Olá,
Copie e cole o código abaixo no IDE do Arduino, ative o "Serial Monitor" e teste as distâncias informadas, consegui leitura de 2,5cm á 250cm com o SR04.
// programa para o sensor ultrassonico
int ledPin = 13; //configura o pino 13 da Arduino para conexão do LED
int trig = 8; //configura o pino 8 da Arduino para conexão do Trig do sonar
int echo = 11; //configura o pino 11 (PWM) da Arduino para conexão do Echo do sonar
void setup( ) {
pinMode(trig, OUTPUT); //define o pino 8 como um output (envia sinal do sensor)
pinMode(echo, INPUT); //define o pino 7 como um input (recebe sinal do sensor)
pinMode(ledPin, OUTPUT); //define o pino 13 como um output (aciona o LED)
Serial.begin(9600);
Serial.print("distancia");
}
void loop(){
float tempo, cm;
//comandos para enviar um pulso do sonar e armazenar o tempo de resposta
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH); //ativa o sonar por 10 microssegundos
delayMicroseconds(10);
digitalWrite(trig, LOW);
delayMicroseconds(2);
tempo = pulseIn(echo, HIGH); // tempo, recebe o tempo de ida e volta do sinal
cm = tempo/29/2; //converte duration em centímetros
Serial.println(cm);
// Se cm menor ou igual a 30, liga o LED
if (cm <= 30)
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
}
porque no cm em vez de fazer tempo/29/2 nao faz logo tempo/58?
ResponderExcluirOlá Hugo, você quis dizer; tempo/58 é igual a; tempo/29/2! Veja bem, é para ficar mais didático: A velocidade do som no ar é de ~340 m/s, então em 1m, o som leva 2.941,1764us, se dividirmos por 100 (para obter em cm), teremos que para 1cm, o som leva 29,41 us para percorrer esta distância. Então, se pegarmos; TEMPO / 29 teremos a distância que a onda de som viajou, porém, como o som foi refletido pelo objeto alvo, temos que dividir por 2 para saber a que distância estava o alvo do sonar, por isso; TEMPO / 29 / 2.
ResponderExcluirATENÇÃO: O sensor SR04, tem 4 pinos, sendo 2 de sinal (Echo e trigger) e 2 de alimentação (GND e 5V)
ResponderExcluirMuito bom, me ajudou muito!
ExcluirFiquei perdido na conversão para centimetros, alguns usam desta forma: cm = TEMPO/34/2, posso usar assim tb?
Olá André,
ExcluirTem que ser "tempo/29/2" para obter a métrica em centímetros, talvez a expressão que você cita venha a expressar a distância em outra unidade de medida que não centímetros, temos que verificar. A velocidade do som no ar é de ~340 m/s, então em 1m, o som leva 2.941,1764us, se dividirmos por 100 (para obter em cm), teremos que para 1cm, o som leva 29,41 us para percorrer esta distância. Então, se pegarmos; TEMPO / 29 teremos a distância que a onda de som viajou, porém, como o som foi refletido pelo objeto alvo, temos que dividir por 2 para saber a que distância estava o alvo do sonar, por isso; TEMPO / 29 / 2. Abraço.
Olá, usando seu exemplo, o sensor mostra 1,5 a 2 cm a mais da distância do objeto medindo pela régua, é pouca coisa, mas preciso mais preciso. Obrigado!!!
ResponderExcluir