Library to operate Grove-LCD RGB Backlight v4.0

Revision:
0:fb21134ce1b9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rgb_lcd.h	Mon Apr 15 07:44:45 2019 +0000
@@ -0,0 +1,78 @@
+/*
+    rgb_lcd library
+    Created by: Isaac Maximiliano Martinez Govea
+    15/04/2019
+*/
+
+#ifndef RGB_LCD_H
+#define RGB_LCD_H
+
+/*  Constants */
+//Addresses I2C
+#define LCD_ADDRESS (0x7C)
+#define RGB_ADDRESS (0xC4)
+
+//Registres de la couleur
+#define REG_MODE1   0x00
+#define REG_MODE2   0X01
+#define REG_OUTPUT  0x08
+
+#define REG_RED 0x04
+#define REG_GREEN   0x03
+#define REG_BLUE    0x02
+
+//COMMANDES LCD
+#define LCD_FUNCTIONSET 0x20
+#define LCD_ENTRYMODESET    0x04
+#define LCD_DISPLAYCONTROL  0x08
+#define LCD_CLEARDISPLAY    0x01
+
+//Flags
+#define LCD_2LINE   0x08
+#define LCD_5X10DOTS    0x04
+#define LCD_5X8DOTS    0x00
+#define LCD_DISPLAYON   0x04
+#define LCD_CURSOROFF   0x00
+#define LCD_BLINKOFF    0x00
+#define LCD_ENTRYLEFT   0x02
+#define LCD_ENTRYSHIFTDECREMENT 0x00
+
+#include "mbed.h"
+
+class rgb_lcd : public Stream{
+    private:
+        I2C *i2c;
+        uint8_t _displayfunction;
+        uint8_t _displaycontrol;
+        uint8_t _displaymode;
+        
+        /*
+            Local comunication fonctions
+        */
+        void setReg(uint8_t reg, uint8_t value);    // Communication with the RGB driver
+        void command(uint8_t comm); // Communication with the LCD driver
+    
+        void write(uint8_t value);                  // Communication with the print register of the LCD
+        void i2c_send_byteS(uint8_t *data, uint8_t len);    // Communication I2C
+    protected:
+        /* 
+            We overdrive these functions to get acces to the function printf
+        */
+        virtual int _putc(int c);
+        virtual int _getc();
+    public:
+    rgb_lcd(I2C* i2c_bus);
+    
+    /* 
+        User Fonctions
+    */
+    void begin();       // Initialize the LCD
+    void setRGB(uint8_t r, uint8_t g, uint8_t b);   // Set backlight-color
+    void setCursor(uint8_t col, uint8_t row);       // Set cursor position
+    void display();     //  Display text
+    void clear();       //  Clear display
+    
+    void test_rgb();
+};
+
+#endif
\ No newline at end of file