为超声波传感器制作课程

问题描述

你好吗?我正在做一个项目,我想创建一个将参数传递给超声波传感器并执行其他任务的类。基本上,我想通过类中的函数传递 echo、triger 和 max_distance 的值:

例如,要声明超声波传感器,请使用以下内容

  #define TRIGGER_PIN 1;
  #define ECHO_PIN_ultrasound 2;
  #define MAX_disTANCE 100;

但是我想创建一个类,我只需要通过参数将值传递给它,例如,如果发生某些事情,我可以打开 LED。

到目前为止,这是我的代码,但我得到以下结果:没有匹配的函数用于调用“NewPing::NewPing()”。 为什么会发生这种情况?

#include <NewPing.h>


// Get used to writing classes in two parts.
// PART ONE the class decleration. (Ends up later in life being the .h file)

class Ultrasonido :  public NewPing {

   public:
         Ultrasonido(uint8_t trigger_pin,uint8_t echo_pin,int max_cm_distance=MAX_SENSOR_disTANCE);
virtual  ~Ultrasonido(void);
    
         void encender(void); 
};

 

// PART TWO the actual code. (Ends up later in life being the .cpp file)

Ultrasonido::Ultrasonido (uint8_t trigger_pin,int max_cm_distance) {  }
   : NewPing(trigger_pin,echo_pin,max_cm_distance) {  }

   
Ultrasonido::~Ultrasonido(void) {  }

    
void Ultrasonido::encender(void) {
   // Do youre LED or whatever here..  
}


Ultrasonido sensor1(1,2,100);
Ultrasonido sensor2(4,5,100);

int distancia=0;

void setup() { }

void loop() {
   
  distancia=sensor1.ping_cm();
  if (distancia<10){
    sensor1.encender();
  }
}

也许是因为在用Newping声明对象之前必须定义echo、trigger和max_distance,但我不确定。

非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)