关于Arduino编写类库的问题:在学习arduino,遇到类库的内容,尝试用C语言编写一个 超声波模块的 库 SR04.h ,但是最终运行的时候 还是 出了错,显示 'Set_SR04' was not declared in this scope .
一、本次编写的 超声波模块 库文件 SR04 共包含3部分 :SR04.h , SR04.cpp , keywords.txt , 具体内容分别如下:
1、SR04.h 的内容如下:
#ifndef SR04_H
#define SR04_H
# if defined(ARDUINO)&&ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
int TrigPin;
int EchoPin;
float distance;
void Set_SR04(TrigPin,EchoPin);
float Get_SR04(TrigPin,EchoPin);
#endif
2、SR04.cpp 的内容如下:
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "SR04.h"
void Set_SR04(TrigPin,EchoPin)
{
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
}
float Get_SR04(TrigPin,EchoPin)
{
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
distance = pulseIn(EchoPin,HIGH)/58.0;
return distance;
}
3、keywords的内容如下:
SR04 KEYWORD1
Set_SR04 KEYWORD2
Get_SR04 KEYWORD2
二、具体操作过程:
将 SR04.h , SR04.cpp , keywords.txt 三个文件 放在arduino 安装目录下 libraries 下
三、运行结果
在arduino IDE 1.8.19 中 编写了一个程序,如下:
#include <SR04.h>
void setup()
{
Set_SR04(8,7);
Serial.begin(9600);
}
void loop()
{
float distance = Get_SR04(8,7);
Serial.println(distance);
delay(100);
}
运行结果 显示: 'Set_SR04' was not declared in this scope
这个 Set_SR04 我在 SR04.h 的头文件中不是 已经定义过了吗? 这里 为什么 说 没有声明呢?
哪里出错了? 该怎样修改呢? 谢谢!