Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: LiquidCrystal_I2C.h
- Revision:
- 0:1202bdc184ed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LiquidCrystal_I2C.h Wed Aug 17 02:54:57 2022 +0000
@@ -0,0 +1,127 @@
+// YWROBOT
+#ifndef LiquidCrystal_I2C_h
+#define LiquidCrystal_I2C_h
+#include "Print.h"
+#include "mbed.h"
+#include <inttypes.h>
+
+// commands
+#define LCD_CLEARDISPLAY 0x01
+#define LCD_RETURNHOME 0x02
+#define LCD_ENTRYMODESET 0x04
+#define LCD_DISPLAYCONTROL 0x08
+#define LCD_CURSORSHIFT 0x10
+#define LCD_FUNCTIONSET 0x20
+#define LCD_SETCGRAMADDR 0x40
+#define LCD_SETDDRAMADDR 0x80
+
+// flags for display entry mode
+#define LCD_ENTRYRIGHT 0x00
+#define LCD_ENTRYLEFT 0x02
+#define LCD_ENTRYSHIFTINCREMENT 0x01
+#define LCD_ENTRYSHIFTDECREMENT 0x00
+
+// flags for display on/off control
+#define LCD_DISPLAYON 0x04
+#define LCD_DISPLAYOFF 0x00
+#define LCD_CURSORON 0x02
+#define LCD_CURSOROFF 0x00
+#define LCD_BLINKON 0x01
+#define LCD_BLINKOFF 0x00
+
+// flags for display/cursor shift
+#define LCD_DISPLAYMOVE 0x08
+#define LCD_CURSORMOVE 0x00
+#define LCD_MOVERIGHT 0x04
+#define LCD_MOVELEFT 0x00
+
+// flags for function set
+#define LCD_8BITMODE 0x10
+#define LCD_4BITMODE 0x00
+#define LCD_2LINE 0x08
+#define LCD_1LINE 0x00
+#define LCD_5x10DOTS 0x04
+#define LCD_5x8DOTS 0x00
+
+// flags for backlight control
+#define LCD_BACKLIGHT 0x08
+#define LCD_NOBACKLIGHT 0x00
+
+#define En 0B00000100 // Enable bit
+#define Rw 0B00000010 // Read/Write bit
+#define Rs 0B00000001 // Register select bit
+
+class LiquidCrystal_I2C : public Print {
+public:
+ LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t lcd_cols, uint8_t lcd_rows,
+ PinName sda, PinName scl);
+ void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
+ void clear();
+ void home();
+ void noDisplay();
+ void display();
+ void noBlink();
+ void blink();
+ void noCursor();
+ void cursor();
+ void scrollDisplayLeft();
+ void scrollDisplayRight();
+ void printLeft();
+ void printRight();
+ void leftToRight();
+ void rightToLeft();
+ void shiftIncrement();
+ void shiftDecrement();
+ void noBacklight();
+ void backlight();
+ void autoscroll();
+ void noAutoscroll();
+ void createChar(uint8_t, uint8_t[]);
+ void setCursor(uint8_t, uint8_t);
+
+ virtual size_t write(uint8_t);
+ void command(uint8_t);
+ void init();
+
+ ////compatibility API function aliases
+ void blink_on(); // alias for blink()
+ void blink_off(); // alias for noBlink()
+ void cursor_on(); // alias for cursor()
+ void cursor_off(); // alias for noCursor()
+ void setBacklight(uint8_t new_val); // alias for backlight() and nobacklight()
+ void load_custom_character(uint8_t char_num,
+ uint8_t *rows); // alias for createChar()
+ void printstr(const char[]);
+
+ ////Unsupported API functions (not implemented in this library)
+ uint8_t status();
+ void setContrast(uint8_t new_val);
+ uint8_t keypad();
+ void setDelay(int, int);
+ void on();
+ void off();
+ uint8_t init_bargraph(uint8_t graphtype);
+ void draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len,
+ uint8_t pixel_col_end);
+ void draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len,
+ uint8_t pixel_col_end);
+
+private:
+ mbed::I2C *i2c;
+ void init_priv();
+ void begin_priv(uint8_t charsize = LCD_5x8DOTS);
+ void send(uint8_t, uint8_t);
+ void write4bits(uint8_t);
+ void expanderWrite(uint8_t);
+ void pulseEnable(uint8_t);
+ uint8_t _Addr;
+ uint8_t _displayfunction;
+ uint8_t _displaycontrol;
+ uint8_t _displaymode;
+ uint8_t _numlines;
+ uint8_t _cols;
+ uint8_t _rows;
+ uint8_t _backlightval;
+};
+
+#endif