//LCD_Print_Class.h Header File#ifndef LCD_PRINT_CLASS_H#define LCD_PRINT_CLASS_H#include <LCD_Init_Class.h>#include "Arduino.h"class LCD_Print_Class : public LCD_Init_Class //, public Print { public : LCD_Print_Class( ); LCD_Print_Class(int pin_vcc, int pin_gnd, int pin_sce, int pin_res, int pin_dc, int pin_sd, int pin_ck); size_t write(char c); size_t write(const char *characters); size_t write(byte *array, int len); };#endif
-------------------------------------------------//LCD_Print_Class.cpp Implementation file#include "LCD_Print_Class.h"LCD_Print_Class::LCD_Print_Class( ){ LCD_Init_Class:LCD_Init_Class( );}LCD_Print_Class::LCD_Print_Class(int pin_vcc, int pin_gnd, int pin_sce, int pin_res, int pin_dc, int pin_sd, int pin_ck){ LCD_Init_Class(pin_vcc, pin_gnd, pin_sce, pin_res, pin_dc, pin_sd, pin_ck);};size_t LCD_Print_Class::write(char c){ return char2lcd(c);}size_t LCD_Print_Class::write(const char *characters) { int c=0; while (*characters){ write(*characters++); c++;} return c; } size_t LCD_Print_Class::write(byte *array, int len){ for (int pp= 0; pp < len; pp++) write(array[pp]); return len; }
-----------------------------------------------------//LCD_Print_Class.ino Client or test code#include "LCD_Print_Class.h"LCD_Print_Class LCD;//LCD_Print_Class LCD(2,3,4,5,6,7,8); byte test_array[ ] ={0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x20};
void setup() { LCD.begin( ); }void loop() { //Serial.write(test_array,sizeof(test_array)); LCD.write(test_array,sizeof(test_array)); LCD.setXY(0,1); int len = LCD.write("Testing a string. Length = "); LCD.write(len+32); for (int p = 0; p<28; p++) LCD.char2lcd((p+32)); delay(500); LCD.clear( ); //clear whole screen}