我想为一个项目创建一个库,并且我必须在某一时刻做一个AnalogRead。我为此创建了一个库,并且编译时没有任何错误。
但是当我想调用此函数时,它返回0,但在.ino文件中工作正常。

这是我的文件:

.ino文件

#include <Filoguidage.h>
Filoguidage filoguidage;
int pin = A11;

void setup() {
  Serial.begin(115200);
  pinMode(pin,INPUT);
  filoguidage.init(pin,10,10);
}
void loop() {
  int test = filoguidage.getPosition();
  Serial.println(test);
}


我的图书馆的.h:

#ifndef Filoguidage_h
#define Filoguidage_h
#include "Energia.h"
class Filoguidage
{
    public:
        void init(int PinCapteur,int valeurCentrale, int interval);
        int getPosition();

    private:
        int _PinCapteur;

};
#endif


最后是.cpp:

#include "Energia.h"
#include "Filoguidage.h"


void Filoguidage::init(int PinCapteur,int valeurCentrale,int interval){
  int _PinCapteur = PinCapteur;
    pinMode(_PinCapteur, INPUT);
}
int Filoguidage::getPosition(){
  return analogRead( _PinCapteur );
}


我认为那是因为无法识别pinMode和AnalogRead,但是我不知道如何解决它。如果有人可以帮助我,我将非常高兴,谢谢

最佳答案

Filoguidage::init中,您将_PinCapteur类成员重新声明为局部变量,因此,当为其设置值时,将仅设置函数中的局部成员,而您要设置的实际类成员将保持不变。 。

要解决此问题,请将int _PinCapteur = PinCapteur;更改为_PinCapteur = PinCapteur;

07-22 03:32