首页 > 解决方案 > 类比读取在库中返回 0

问题描述

我想为一个项目创建一个库,我必须马上做一个模拟阅读。我为此创建了一个库,它编译时没有任何错误。但是当我想调用这个函数时,它返回 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 无法识别,但我不知道如何解决它。如果有人可以帮助我,我会很高兴,谢谢

标签: c++c++11arduinoarduino-ide

解决方案


Filoguidage::init您将_PinCapteur类成员重新声明为局部变量时,因此当您为其设置值时,只会设置函数中的本地成员,而您要设置的实际类成员将不受影响。

要解决此问题,请更改int _PinCapteur = PinCapteur;_PinCapteur = PinCapteur;in Filoguidage::init


推荐阅读