#ifndef LCD_CONTROLLER_H #define LCD_CONTROLLER_H #include #include #include #include "LEDController.h" class LCDController { private: FILE* _lcdOutput; LiquidCrystal* _lcd; int _lcdCols; int _lcdRows; int _cursorRow; int _cursorCol; static int lcdPutchar(char c, FILE* stream); static LCDController* _instance; public: LCDController(uint8_t rs, uint8_t enable, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, int cols = 16, int rows = 2); ~LCDController(); void begin(); FILE* stream(); void clear(); void setCursor(int col, int row); void print(const char* text); static LCDController* getInstance() { return _instance; } }; #endif