I am writing a class for a project which will take care of handling any LCD updates for my project. The way I want to handle this is to initialize the LCD object in my main file, and then pass the LCD object on to my own class when initializing it. The LCD object should be declared a private object in my class so several member functions can access it.
The problem is I can't find how to initialize the object correctly in the .h file. Below is what I currently have, but when I try to build it, I get:
LCDController.h:_Clcd1' should be initialized
LCDController.h:_Clcd2' should be initialized
main .ino file:
void setup()
{
//LiquidCrystal lcd(RS,RW,Enable1,Enable2, data3,data2,data1,data0);
LiquidCrystal lcd(12, 11, 7, 6, 5, 4); //declare two LCD's
LiquidCrystal lcd2(12, 10, 7, 6, 5, 4); // Ths is the second
LCDController.init(lcd, lcd2);
}
LCDController.h file:
// LCDController.h
#ifndef _LCDCONTROLLER_h
#define _LCDCONTROLLER_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include <LiquidCrystal.h>
class LCDControllerClass
{
protected:
public:
void init(LiquidCrystal& Clcd1, LiquidCrystal& Clcd2);
private:
void _UpdateLCD(int iLine, int iPosition, String cText);
LiquidCrystal& _Clcd1;
LiquidCrystal& _Clcd2;
};
extern LCDControllerClass LCDController;
#endif
LCDController.cpp file:
#include "LCDController.h"
#include <LiquidCrystal.h>
void LCDControllerClass::init(LiquidCrystal& Clcd1, LiquidCrystal& Clcd2)
{
_Clcd1 = Clcd1;
_Clcd1.begin(40, 2);
_Clcd1.clear();
_Clcd2 = Clcd2;
_Clcd2.begin(40, 2);
_Clcd2.clear();
}