在arduino上的类中使用LiquidCrystal_I2C

时间:2015-04-10 13:22:34

标签: c++ arduino arduino-uno atmelstudio

我想在cpp中为在显示器上写入的arduino uno创建一个类。我使用的是LiquidCrystal_I2C库但我无法在课堂上使用它。我知道如何在没有课程的情况下做到这一点,但是现在我想建立一个课程而且我无法让它发挥作用。

我的.h文件:

// WriteDisplay.h

#ifndef _WRITEDISPLAY_h
#define _WRITEDISPLAY_h

#if defined(ARDUINO) && ARDUINO >= 100
#include "arduino.h"
#else
    #include "WProgram.h"
#endif
#include <Wire/Wire.h>
#include <LiquidCrystal_I2C2004V1/LiquidCrystal_I2C.h>

class WriteDisplayClass
{
 public:
    WriteDisplayClass();
    void write(String text);
 private:
    LiquidCrystal_I2C lcd(0x27,20,4);
};

extern WriteDisplayClass WriteDisplay;

#endif

我的.cpp:

#include "WriteDisplay.h"

WriteDisplayClass::WriteDisplayClass()
{
    lcd.init();
    lcd.backlight();
    lcd.setCursor(0, 0);
}

WriteDisplayClass::write(String text)
{
    lcd.clear();
    lcd.print(text);
}


WriteDisplayClass WriteDisplay;

我的.ino:

#include "WriteDisplay.h"

WriteDisplayClass wdc;
void setup()
{
    wdc.write("Hello World");
}

void loop()
{
}

我正在使用AtmelStudio和Visual Micro。当我只使用我的.ino文件时,我可以让它工作,但我不能在cpp中做同样的事情。我收到了LiquidCrystal_I2C.h无法找到的错误以及类似的错误。我应该如何让它以我想要的方式工作?或者甚至可能吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

抱歉,我第一次误读了这个问题。

要在Arduino草图的.cpp文件中使用库,还必须将它们包含在master .ino文件中。只有在.ino

中找到它们才会被编译

您可以手动添加包含或使用&#34;项目&gt;添加/导入草图库&#34;菜单项将把它们添加到.ino中。