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);
}