如何解决为超声波传感器制作课程
你好吗?我正在做一个项目,我想创建一个将参数传递给超声波传感器并执行其他任务的类。基本上,我想通过类中的函数传递 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 举报,一经查实,本站将立刻删除。