arduinoprojects

git clone https://git.tarina.org/arduinoprojects
Log | Files | Refs

LiquidCrystal_I2C.h (3428B)


      1 //YWROBOT
      2 #ifndef LiquidCrystal_I2C_h
      3 #define LiquidCrystal_I2C_h
      4 
      5 #include <inttypes.h>
      6 #include "Print.h" 
      7 #include <Wire.h>
      8 
      9 // commands
     10 #define LCD_CLEARDISPLAY 0x01
     11 #define LCD_RETURNHOME 0x02
     12 #define LCD_ENTRYMODESET 0x04
     13 #define LCD_DISPLAYCONTROL 0x08
     14 #define LCD_CURSORSHIFT 0x10
     15 #define LCD_FUNCTIONSET 0x20
     16 #define LCD_SETCGRAMADDR 0x40
     17 #define LCD_SETDDRAMADDR 0x80
     18 
     19 // flags for display entry mode
     20 #define LCD_ENTRYRIGHT 0x00
     21 #define LCD_ENTRYLEFT 0x02
     22 #define LCD_ENTRYSHIFTINCREMENT 0x01
     23 #define LCD_ENTRYSHIFTDECREMENT 0x00
     24 
     25 // flags for display on/off control
     26 #define LCD_DISPLAYON 0x04
     27 #define LCD_DISPLAYOFF 0x00
     28 #define LCD_CURSORON 0x02
     29 #define LCD_CURSOROFF 0x00
     30 #define LCD_BLINKON 0x01
     31 #define LCD_BLINKOFF 0x00
     32 
     33 // flags for display/cursor shift
     34 #define LCD_DISPLAYMOVE 0x08
     35 #define LCD_CURSORMOVE 0x00
     36 #define LCD_MOVERIGHT 0x04
     37 #define LCD_MOVELEFT 0x00
     38 
     39 // flags for function set
     40 #define LCD_8BITMODE 0x10
     41 #define LCD_4BITMODE 0x00
     42 #define LCD_2LINE 0x08
     43 #define LCD_1LINE 0x00
     44 #define LCD_5x10DOTS 0x04
     45 #define LCD_5x8DOTS 0x00
     46 
     47 // flags for backlight control
     48 #define LCD_BACKLIGHT 0x08
     49 #define LCD_NOBACKLIGHT 0x00
     50 
     51 #define En B00000100  // Enable bit
     52 #define Rw B00000010  // Read/Write bit
     53 #define Rs B00000001  // Register select bit
     54 
     55 class LiquidCrystal_I2C : public Print {
     56 public:
     57   LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);
     58   void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );
     59   void clear();
     60   void home();
     61   void noDisplay();
     62   void display();
     63   void noBlink();
     64   void blink();
     65   void noCursor();
     66   void cursor();
     67   void scrollDisplayLeft();
     68   void scrollDisplayRight();
     69   void printLeft();
     70   void printRight();
     71   void leftToRight();
     72   void rightToLeft();
     73   void shiftIncrement();
     74   void shiftDecrement();
     75   void noBacklight();
     76   void backlight();
     77   void autoscroll();
     78   void noAutoscroll(); 
     79   void createChar(uint8_t, uint8_t[]);
     80   void setCursor(uint8_t, uint8_t); 
     81 #if defined(ARDUINO) && ARDUINO >= 100
     82   virtual size_t write(uint8_t);
     83 #else
     84   virtual void write(uint8_t);
     85 #endif
     86   void command(uint8_t);
     87   void init();
     88 
     89 ////compatibility API function aliases
     90 void blink_on();						// alias for blink()
     91 void blink_off();       					// alias for noBlink()
     92 void cursor_on();      	 					// alias for cursor()
     93 void cursor_off();      					// alias for noCursor()
     94 void setBacklight(uint8_t new_val);				// alias for backlight() and nobacklight()
     95 void load_custom_character(uint8_t char_num, uint8_t *rows);	// alias for createChar()
     96 void printstr(const char[]);
     97 
     98 ////Unsupported API functions (not implemented in this library)
     99 uint8_t status();
    100 void setContrast(uint8_t new_val);
    101 uint8_t keypad();
    102 void setDelay(int,int);
    103 void on();
    104 void off();
    105 uint8_t init_bargraph(uint8_t graphtype);
    106 void draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_col_end);
    107 void draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,  uint8_t pixel_col_end);
    108 	 
    109 
    110 private:
    111   void init_priv();
    112   void send(uint8_t, uint8_t);
    113   void write4bits(uint8_t);
    114   void expanderWrite(uint8_t);
    115   void pulseEnable(uint8_t);
    116   uint8_t _Addr;
    117   uint8_t _displayfunction;
    118   uint8_t _displaycontrol;
    119   uint8_t _displaymode;
    120   uint8_t _numlines;
    121   uint8_t _cols;
    122   uint8_t _rows;
    123   uint8_t _backlightval;
    124 };
    125 
    126 #endif