Inclure LiquidCrystal dans une classe perso

Bonjour,

La variable "lcd" n'existe pas dans ta classe -> erreur de compilation (forcément)

Trois choix :

  • soit tu déclares "lcd" dans ton sketch en variable globale et en "extern" dans ton .h (c'est très moche mais ça marche)
  • soit tu déclares une instance de LiquidCrystal dans ton .h (déjà plus propre)
  • soit tu déclares un pointeur/référence sur un objet de type LiquidCrystal dans ton .h que tu initialises via ton constructeur

Choix n°3 :

#ifndef TEST_H
#define TEST_H

class LiquidCrystal;

class Test {
  protected:
    LiquidCrystal& _lcd;

  public:
    Test(LiquidCrystal& lcd);
    void texte_1();
};
#endif // TEST_H
#include <Arduino.h>
#include <LiquidCrystal.h>
#include "Test.h"

Test::Test(LiquidCrystal& lcd) : _lcd(lcd) {
}

void Test::texte_1() {
  _lcd.clear();
  _lcd.setCursor(0,0);
  _lcd.print(F("YOYO"));
  delay(3000);
}
#include <Test.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
Test test(lcd);

void setup() {
  lcd.begin(20, 4);
  lcd.clear();
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print(F("Yopla"));
  delay(3000);
}