Go Down

Topic: Calculando a velocidade com 2 sensores ultrassônicos HC-SR04 (Read 133 times) previous topic - next topic

fabioscmotta


Ao compilar o código:

#include "Ultrasonic.h"
#define trig1 2
#define echo1 3
#define trig2 4
#define echo2 5

unsigned long start = 0;
unsigned long finish = 0;
int carroPassouStart = 0;
int carroPassouFinish = 0;
double tempo;
double velocidade;
double distanciaSensores = 0.15;
double fatorParaSegundos = 1000;

Ultrasonic ultra1(2 , 3);
Ultrasonic ultra2(4 , 5);




void setup() {
   Serial.begin(9600); //inicia a porta serial
   pinMode(trig1, OUTPUT); // define o pino 2 como saida (envia)
   pinMode(echo1, INPUT); // define o pino 3 como entrada (recebe)
   pinMode(trig2, OUTPUT); // define o pino 4 como saida (envia)
   pinMode(echo2, INPUT); // define o pino 5 como entrada (recebe)
}

void loop() {

  //seta o pino 2 com um pulso baixo "LOW" ou desligado ou ainda 0
  digitalWrite(trig1, LOW);
  // delay de 10 microssegundos
 delayMicroseconds(10);
  //seta o pino 2 com pulso alto "HIGH" ou ligado ou ainda 1
 digitalWrite(trig1, HIGH);
 //delay de 100 microssegundos
  delayMicroseconds(100);
  //seta o pino 2 com pulso baixo novamente
  digitalWrite(trig1, LOW);
   

    //seta o pino 4 com um pulso baixo "LOW" ou desligado ou ainda 0
  digitalWrite(trig2, LOW);
  // delay de 10 microssegundos
  delayMicroseconds(10);
  //seta o pino 4 com pulso alto "HIGH" ou ligado ou ainda 1
  digitalWrite(trig2, HIGH);
   //delay de 100 microssegundos
  delayMicroseconds(100);
  //seta o pino 4 com pulso baixo novamente
  digitalWrite(trig2, LOW);
 
  if(ultra1.Ranging(CM) < 10){
    start = millis();
    carroPassouStart = 1;
   Serial.println ("aqui1");
    }
   
  if(ultra2.Ranging(CM) < 10){
    finish = millis();
    carroPassouFinish = 1;
    Serial.println ("aqui2");
    }

  if((carroPassouStart && carroPassouFinish )&& finish > start){
    tempo = ((finish - start)/ fatorParaSegundos);
    velocidade = ((distanciaSensores / tempo) * 3.6); //velocidade em km/h
    Serial.print ("Tempo:  ");
    Serial.print (tempo);
    Serial.println ("s");
   //delay(1000);
    Serial.print ("Velocidade:  ");
    Serial.print (velocidade);
    Serial.println ("km/h");
    //delay(1000);
    carroPassouStart = 0;
    carroPassouFinish = 0;
   }
     
   
}


O seguinte erro apareceu:

Velocidade_2_Sensores:55: error: 'class Ultrasonic' has no member named 'Ranging'

   if(ultra1.Ranging(CM) < 10){

             ^

Velocidade_2_Sensores:55: error: 'CM' was not declared in this scope

   if(ultra1.Ranging(CM) < 10){

                     ^

Velocidade_2_Sensores:61: error: 'class Ultrasonic' has no member named 'Ranging'

   if(ultra2.Ranging(CM) < 10){

             ^

Velocidade_2_Sensores:61: error: 'CM' was not declared in this scope

   if(ultra2.Ranging(CM) < 10){

                     ^

exit status 1
'class Ultrasonic' has no member named 'Ranging'


Alguém poderia me ajudar?

fabioscmotta

Problema resolvido! Era uma questão de atualizar a biblioteca.
Sugiro usar: https://github.com/hemalchevli/ultrasonic-library

Go Up