Используйте LiquidCrystal_I2C в классе на Arduino

Я хочу сделать класс в 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

Решение

Извините, я неправильно понял вопрос в первый раз.

Чтобы использовать библиотеки в файле .cpp эскиза Arduino, вы также должны включить их в основной файл .ino. Они компилируются, только если найдены в .ino

Вы можете добавить включения вручную или использовать пункт меню «Проект> Добавить / импортировать библиотеку эскизов», который добавит их в .ino для вас.

0

Другие решения


По вопросам рекламы [email protected]