Harry Cadena / Mbed 2 deprecated LiquidCrystal_I2C

Dependencies:   mbed

Committer:
harrycadena
Date:
Wed Aug 17 02:54:57 2022 +0000
Revision:
0:1202bdc184ed
LAST PROGRAM D2;

Who changed what in which revision?

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