From 3f7c7d9bf3d67c44d4c703323ee57dbb2e1dd587 Mon Sep 17 00:00:00 2001 From: Gitea Date: Mon, 18 Jul 2022 21:25:44 +0300 Subject: [PATCH] Initial commit --- LICENSE | 9 + a_really_bad_rangefinder.ino | 80 +++++ lib/LCD_I2C/LICENSE | 21 ++ lib/LCD_I2C/LiquidCrystal_I2C.cpp | 332 ++++++++++++++++++ lib/LCD_I2C/LiquidCrystal_I2C.h | 131 +++++++ lib/LCD_I2C/README.md | 4 + .../examples/CustomChars/CustomChars.pde | 70 ++++ .../examples/HelloWorld/HelloWorld.pde | 26 ++ .../examples/SerialDisplay/SerialDisplay.pde | 34 ++ lib/LCD_I2C/keywords.txt | 46 +++ lib/LCD_I2C/library.json | 16 + lib/LCD_I2C/library.properties | 9 + schematics.png | Bin 0 -> 72579 bytes 13 files changed, 778 insertions(+) create mode 100644 LICENSE create mode 100644 a_really_bad_rangefinder.ino create mode 100644 lib/LCD_I2C/LICENSE create mode 100644 lib/LCD_I2C/LiquidCrystal_I2C.cpp create mode 100644 lib/LCD_I2C/LiquidCrystal_I2C.h create mode 100644 lib/LCD_I2C/README.md create mode 100644 lib/LCD_I2C/examples/CustomChars/CustomChars.pde create mode 100644 lib/LCD_I2C/examples/HelloWorld/HelloWorld.pde create mode 100644 lib/LCD_I2C/examples/SerialDisplay/SerialDisplay.pde create mode 100644 lib/LCD_I2C/keywords.txt create mode 100644 lib/LCD_I2C/library.json create mode 100644 lib/LCD_I2C/library.properties create mode 100644 schematics.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..073bd06 --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ + The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/a_really_bad_rangefinder.ino b/a_really_bad_rangefinder.ino new file mode 100644 index 0000000..dcf3e03 --- /dev/null +++ b/a_really_bad_rangefinder.ino @@ -0,0 +1,80 @@ +#include + +/* + The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +bool active = false; + +unsigned int trigger_pin = 5; +unsigned int echo_pin = 6; +unsigned int button_pin = 13; + +LiquidCrystal_I2C lcd(0x27, 16, 4); + +void setup() { + Serial.begin(9600); + // turn on/off button + pinMode(button_pin, INPUT_PULLUP); + + // ultrasonic sensor + pinMode(trigger_pin, OUTPUT); + pinMode(echo_pin, INPUT); + + // display is initialized during a mainloop +} + +void loop() { + int button_state = digitalRead(button_pin); + if (button_state == LOW && !active) { + active = true; + lcd.init(); + lcd.backlight(); + lcd.clear(); + delay(250); + } else if (button_state == LOW && active) { + active = false; + lcd.noBacklight(); + lcd.clear(); + delay(250); + } + + if (active) { + unsigned int duration, distance_cm; + float distance_m; + + digitalWrite(trigger_pin, LOW); + delayMicroseconds(2); + + // initialize the sensor + digitalWrite(trigger_pin, HIGH); + delayMicroseconds(10); + digitalWrite(trigger_pin, LOW); + + // get sensor's measurements and calculate distance + duration = pulseIn(echo_pin, HIGH); + distance_cm = duration / 58; + distance_m = (float) distance_cm / 100; + + // print distance to the screen + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print(distance_cm); + lcd.print(" cm"); + + lcd.setCursor(8, 0); + lcd.print("("); + lcd.print(distance_m); + lcd.print(" m)"); + + delay(150); + } +} diff --git a/lib/LCD_I2C/LICENSE b/lib/LCD_I2C/LICENSE new file mode 100644 index 0000000..471e45d --- /dev/null +++ b/lib/LCD_I2C/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Tandembyte + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/lib/LCD_I2C/LiquidCrystal_I2C.cpp b/lib/LCD_I2C/LiquidCrystal_I2C.cpp new file mode 100644 index 0000000..9dea08c --- /dev/null +++ b/lib/LCD_I2C/LiquidCrystal_I2C.cpp @@ -0,0 +1,332 @@ +// Based on the work by DFRobot + +#include "LiquidCrystal_I2C.h" +#include +#if defined(ARDUINO) && ARDUINO >= 100 + +#include "Arduino.h" + +#define printIIC(args) Wire.write(args) +inline size_t LiquidCrystal_I2C::write(uint8_t value) { + send(value, Rs); + return 1; +} + +#else +#include "WProgram.h" + +#define printIIC(args) Wire.send(args) +inline void LiquidCrystal_I2C::write(uint8_t value) { + send(value, Rs); +} + +#endif +#include "Wire.h" + + + +// When the display powers up, it is configured as follows: +// +// 1. Display clear +// 2. Function set: +// DL = 1; 8-bit interface data +// N = 0; 1-line display +// F = 0; 5x8 dot character font +// 3. Display on/off control: +// D = 0; Display off +// C = 0; Cursor off +// B = 0; Blinking off +// 4. Entry mode set: +// I/D = 1; Increment by 1 +// S = 0; No shift +// +// Note, however, that resetting the Arduino doesn't reset the LCD, so we +// can't assume that its in that state when a sketch starts (and the +// LiquidCrystal constructor is called). + +LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows) +{ + _Addr = lcd_Addr; + _cols = lcd_cols; + _rows = lcd_rows; + _backlightval = LCD_NOBACKLIGHT; +} + +void LiquidCrystal_I2C::oled_init(){ + _oled = true; + init_priv(); +} + +void LiquidCrystal_I2C::init(){ + init_priv(); +} + +void LiquidCrystal_I2C::init_priv() +{ + Wire.begin(); + _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; + begin(_cols, _rows); +} + +void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { + if (lines > 1) { + _displayfunction |= LCD_2LINE; + } + _numlines = lines; + + // for some 1 line displays you can select a 10 pixel high font + if ((dotsize != 0) && (lines == 1)) { + _displayfunction |= LCD_5x10DOTS; + } + + // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! + // according to datasheet, we need at least 40ms after power rises above 2.7V + // before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50 + delay(50); + + // Now we pull both RS and R/W low to begin commands + expanderWrite(_backlightval); // reset expanderand turn backlight off (Bit 8 =1) + delay(1000); + + //put the LCD into 4 bit mode + // this is according to the hitachi HD44780 datasheet + // figure 24, pg 46 + + // we start in 8bit mode, try to set 4 bit mode + write4bits(0x03 << 4); + delayMicroseconds(4500); // wait min 4.1ms + + // second try + write4bits(0x03 << 4); + delayMicroseconds(4500); // wait min 4.1ms + + // third go! + write4bits(0x03 << 4); + delayMicroseconds(150); + + // finally, set to 4-bit interface + write4bits(0x02 << 4); + + + // set # lines, font size, etc. + command(LCD_FUNCTIONSET | _displayfunction); + + // turn the display on with no cursor or blinking default + _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; + display(); + + // clear it off + clear(); + + // Initialize to default text direction (for roman languages) + _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; + + // set the entry mode + command(LCD_ENTRYMODESET | _displaymode); + + home(); + +} + +/********** high level commands, for the user! */ +void LiquidCrystal_I2C::clear(){ + command(LCD_CLEARDISPLAY);// clear display, set cursor position to zero + delayMicroseconds(2000); // this command takes a long time! + if (_oled) setCursor(0,0); +} + +void LiquidCrystal_I2C::home(){ + command(LCD_RETURNHOME); // set cursor position to zero + delayMicroseconds(2000); // this command takes a long time! +} + +void LiquidCrystal_I2C::setCursor(uint8_t col, uint8_t row){ + int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; + if ( row > _numlines ) { + row = _numlines-1; // we count rows starting w/0 + } + command(LCD_SETDDRAMADDR | (col + row_offsets[row])); +} + +// Turn the display on/off (quickly) +void LiquidCrystal_I2C::noDisplay() { + _displaycontrol &= ~LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LiquidCrystal_I2C::display() { + _displaycontrol |= LCD_DISPLAYON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turns the underline cursor on/off +void LiquidCrystal_I2C::noCursor() { + _displaycontrol &= ~LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LiquidCrystal_I2C::cursor() { + _displaycontrol |= LCD_CURSORON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// Turn on and off the blinking cursor +void LiquidCrystal_I2C::noBlink() { + _displaycontrol &= ~LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} +void LiquidCrystal_I2C::blink() { + _displaycontrol |= LCD_BLINKON; + command(LCD_DISPLAYCONTROL | _displaycontrol); +} + +// These commands scroll the display without changing the RAM +void LiquidCrystal_I2C::scrollDisplayLeft(void) { + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); +} +void LiquidCrystal_I2C::scrollDisplayRight(void) { + command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); +} + +// This is for text that flows Left to Right +void LiquidCrystal_I2C::leftToRight(void) { + _displaymode |= LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This is for text that flows Right to Left +void LiquidCrystal_I2C::rightToLeft(void) { + _displaymode &= ~LCD_ENTRYLEFT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'right justify' text from the cursor +void LiquidCrystal_I2C::autoscroll(void) { + _displaymode |= LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// This will 'left justify' text from the cursor +void LiquidCrystal_I2C::noAutoscroll(void) { + _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; + command(LCD_ENTRYMODESET | _displaymode); +} + +// Allows us to fill the first 8 CGRAM locations +// with custom characters +void LiquidCrystal_I2C::createChar(uint8_t location, uint8_t charmap[]) { + location &= 0x7; // we only have 8 locations 0-7 + command(LCD_SETCGRAMADDR | (location << 3)); + for (int i=0; i<8; i++) { + write(charmap[i]); + } +} + +//createChar with PROGMEM input +void LiquidCrystal_I2C::createChar(uint8_t location, const char *charmap) { + location &= 0x7; // we only have 8 locations 0-7 + command(LCD_SETCGRAMADDR | (location << 3)); + for (int i=0; i<8; i++) { + write(pgm_read_byte_near(charmap++)); + } +} + +// Turn the (optional) backlight off/on +void LiquidCrystal_I2C::noBacklight(void) { + _backlightval=LCD_NOBACKLIGHT; + expanderWrite(0); +} + +void LiquidCrystal_I2C::backlight(void) { + _backlightval=LCD_BACKLIGHT; + expanderWrite(0); +} + + + +/*********** mid level commands, for sending data/cmds */ + +inline void LiquidCrystal_I2C::command(uint8_t value) { + send(value, 0); +} + + +/************ low level data pushing commands **********/ + +// write either command or data +void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) { + uint8_t highnib=value&0xf0; + uint8_t lownib=(value<<4)&0xf0; + write4bits((highnib)|mode); + write4bits((lownib)|mode); +} + +void LiquidCrystal_I2C::write4bits(uint8_t value) { + expanderWrite(value); + pulseEnable(value); +} + +void LiquidCrystal_I2C::expanderWrite(uint8_t _data){ + Wire.beginTransmission(_Addr); + printIIC((int)(_data) | _backlightval); + Wire.endTransmission(); +} + +void LiquidCrystal_I2C::pulseEnable(uint8_t _data){ + expanderWrite(_data | En); // En high + delayMicroseconds(1); // enable pulse must be >450ns + + expanderWrite(_data & ~En); // En low + delayMicroseconds(50); // commands need > 37us to settle +} + + +// Alias functions + +void LiquidCrystal_I2C::cursor_on(){ + cursor(); +} + +void LiquidCrystal_I2C::cursor_off(){ + noCursor(); +} + +void LiquidCrystal_I2C::blink_on(){ + blink(); +} + +void LiquidCrystal_I2C::blink_off(){ + noBlink(); +} + +void LiquidCrystal_I2C::load_custom_character(uint8_t char_num, uint8_t *rows){ + createChar(char_num, rows); +} + +void LiquidCrystal_I2C::setBacklight(uint8_t new_val){ + if(new_val){ + backlight(); // turn backlight on + }else{ + noBacklight(); // turn backlight off + } +} + +void LiquidCrystal_I2C::printstr(const char c[]){ + //This function is not identical to the function used for "real" I2C displays + //it's here so the user sketch doesn't have to be changed + print(c); +} + + +// unsupported API functions +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +void LiquidCrystal_I2C::off(){} +void LiquidCrystal_I2C::on(){} +void LiquidCrystal_I2C::setDelay (int cmdDelay,int charDelay) {} +uint8_t LiquidCrystal_I2C::status(){return 0;} +uint8_t LiquidCrystal_I2C::keypad (){return 0;} +uint8_t LiquidCrystal_I2C::init_bargraph(uint8_t graphtype){return 0;} +void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_col_end){} +void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_row_end){} +void LiquidCrystal_I2C::setContrast(uint8_t new_val){} +#pragma GCC diagnostic pop + diff --git a/lib/LCD_I2C/LiquidCrystal_I2C.h b/lib/LCD_I2C/LiquidCrystal_I2C.h new file mode 100644 index 0000000..f7c7d13 --- /dev/null +++ b/lib/LCD_I2C/LiquidCrystal_I2C.h @@ -0,0 +1,131 @@ +//YWROBOT +#ifndef LiquidCrystal_I2C_h +#define LiquidCrystal_I2C_h + +#include +#include "Print.h" +#include + +// 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 B00000100 // Enable bit +#define Rw B00000010 // Read/Write bit +#define Rs B00000001 // Register select bit + +class LiquidCrystal_I2C : public Print { +public: + LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows); + 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 createChar(uint8_t location, const char *charmap); + // Example: const char bell[8] PROGMEM = {B00100,B01110,B01110,B01110,B11111,B00000,B00100,B00000}; + + void setCursor(uint8_t, uint8_t); +#if defined(ARDUINO) && ARDUINO >= 100 + virtual size_t write(uint8_t); +#else + virtual void write(uint8_t); +#endif + void command(uint8_t); + void init(); + void oled_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: + void init_priv(); + 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; + bool _oled = false; + uint8_t _cols; + uint8_t _rows; + uint8_t _backlightval; +}; + +#endif diff --git a/lib/LCD_I2C/README.md b/lib/LCD_I2C/README.md new file mode 100644 index 0000000..77b8927 --- /dev/null +++ b/lib/LCD_I2C/README.md @@ -0,0 +1,4 @@ +# LCD_I2C + +LiquidCrystal Arduino library for I2C LCD displays + diff --git a/lib/LCD_I2C/examples/CustomChars/CustomChars.pde b/lib/LCD_I2C/examples/CustomChars/CustomChars.pde new file mode 100644 index 0000000..e341000 --- /dev/null +++ b/lib/LCD_I2C/examples/CustomChars/CustomChars.pde @@ -0,0 +1,70 @@ +//YWROBOT +//Compatible with the Arduino IDE 1.0 +//Library version:1.1 +#include +#include + +#if defined(ARDUINO) && ARDUINO >= 100 +#define printByte(args) write(args); +#else +#define printByte(args) print(args,BYTE); +#endif + +uint8_t bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; +uint8_t note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; +uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; +uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; +uint8_t duck[8] = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0}; +uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0}; +uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0}; +uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4}; + +LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display + +void setup() +{ + lcd.init(); // initialize the lcd + lcd.backlight(); + + lcd.createChar(0, bell); + lcd.createChar(1, note); + lcd.createChar(2, clock); + lcd.createChar(3, heart); + lcd.createChar(4, duck); + lcd.createChar(5, check); + lcd.createChar(6, cross); + lcd.createChar(7, retarrow); + lcd.home(); + + lcd.print("Hello world..."); + lcd.setCursor(0, 1); + lcd.print(" i "); + lcd.printByte(3); + lcd.print(" arduinos!"); + delay(5000); + displayKeyCodes(); + +} + +// display all keycodes +void displayKeyCodes(void) { + uint8_t i = 0; + while (1) { + lcd.clear(); + lcd.print("Codes 0x"); lcd.print(i, HEX); + lcd.print("-0x"); lcd.print(i+15, HEX); + lcd.setCursor(0, 1); + for (int j=0; j<16; j++) { + lcd.printByte(i+j); + } + i+=16; + + delay(4000); + } +} + +void loop() +{ + +} + diff --git a/lib/LCD_I2C/examples/HelloWorld/HelloWorld.pde b/lib/LCD_I2C/examples/HelloWorld/HelloWorld.pde new file mode 100644 index 0000000..234d115 --- /dev/null +++ b/lib/LCD_I2C/examples/HelloWorld/HelloWorld.pde @@ -0,0 +1,26 @@ +//YWROBOT +//Compatible with the Arduino IDE 1.0 +//Library version:1.1 +#include + +LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display + +void setup() +{ + lcd.init(); // initialize the lcd + // Print a message to the LCD. + lcd.backlight(); + lcd.setCursor(3,0); + lcd.print("Hello, world!"); + lcd.setCursor(2,1); + lcd.print("Ywrobot Arduino!"); + lcd.setCursor(0,2); + lcd.print("Arduino LCM IIC 2004"); + lcd.setCursor(2,3); + lcd.print("Power By Ec-yuan!"); +} + + +void loop() +{ +} diff --git a/lib/LCD_I2C/examples/SerialDisplay/SerialDisplay.pde b/lib/LCD_I2C/examples/SerialDisplay/SerialDisplay.pde new file mode 100644 index 0000000..1fca4e1 --- /dev/null +++ b/lib/LCD_I2C/examples/SerialDisplay/SerialDisplay.pde @@ -0,0 +1,34 @@ +/* + * Displays text sent over the serial port (e.g. from the Serial Monitor) on + * an attached LCD. + * YWROBOT + *Compatible with the Arduino IDE 1.0 + *Library version:1.1 + */ +#include +#include + +LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display + +void setup() +{ + lcd.init(); // initialize the lcd + lcd.backlight(); + Serial.begin(9600); +} + +void loop() +{ + // when characters arrive over the serial port... + if (Serial.available()) { + // wait a bit for the entire message to arrive + delay(100); + // clear the screen + lcd.clear(); + // read all the available characters + while (Serial.available() > 0) { + // display each character to the LCD + lcd.write(Serial.read()); + } + } +} diff --git a/lib/LCD_I2C/keywords.txt b/lib/LCD_I2C/keywords.txt new file mode 100644 index 0000000..8c450a9 --- /dev/null +++ b/lib/LCD_I2C/keywords.txt @@ -0,0 +1,46 @@ +########################################### +# Syntax Coloring Map For LiquidCrystal_I2C +########################################### + +########################################### +# Datatypes (KEYWORD1) +########################################### + +LiquidCrystal_I2C KEYWORD1 + +########################################### +# Methods and Functions (KEYWORD2) +########################################### +init KEYWORD2 +begin KEYWORD2 +clear KEYWORD2 +home KEYWORD2 +noDisplay KEYWORD2 +display KEYWORD2 +noBlink KEYWORD2 +blink KEYWORD2 +noCursor KEYWORD2 +cursor KEYWORD2 +scrollDisplayLeft KEYWORD2 +scrollDisplayRight KEYWORD2 +leftToRight KEYWORD2 +rightToLeft KEYWORD2 +shiftIncrement KEYWORD2 +shiftDecrement KEYWORD2 +noBacklight KEYWORD2 +backlight KEYWORD2 +autoscroll KEYWORD2 +noAutoscroll KEYWORD2 +createChar KEYWORD2 +setCursor KEYWORD2 +print KEYWORD2 +blink_on KEYWORD2 +blink_off KEYWORD2 +cursor_on KEYWORD2 +cursor_off KEYWORD2 +setBacklight KEYWORD2 +load_custom_character KEYWORD2 +printstr KEYWORD2 +########################################### +# Constants (LITERAL1) +########################################### diff --git a/lib/LCD_I2C/library.json b/lib/LCD_I2C/library.json new file mode 100644 index 0000000..4710920 --- /dev/null +++ b/lib/LCD_I2C/library.json @@ -0,0 +1,16 @@ +{ + "name": "LiquidCrystal_I2C", + "keywords": "LCD, liquidcrystal, I2C", + "description": "A library for DFRobot I2C LCD displays", + "repository": + { + "type": "git", + "url": "https://github.com/marcoschwartz/LiquidCrystal_I2C.git" + }, + "frameworks": "arduino", + "platforms": + [ + "atmelavr", + "espressif8266" + ] +} diff --git a/lib/LCD_I2C/library.properties b/lib/LCD_I2C/library.properties new file mode 100644 index 0000000..9764810 --- /dev/null +++ b/lib/LCD_I2C/library.properties @@ -0,0 +1,9 @@ +name=LiquidCrystal_I2C +version=1.1.4 +author=Frank de Brabander +maintainer=Marco Schwartz +sentence=A library for I2C LCD displays. +paragraph= The library allows to control I2C displays with functions extremely similar to LiquidCrystal library. THIS LIBRARY MIGHT NOT BE COMPATIBLE WITH EXISTING SKETCHES. +category=Display +url=https://github.com/marcoschwartz/LiquidCrystal_I2C +architectures=avr diff --git a/schematics.png b/schematics.png new file mode 100644 index 0000000000000000000000000000000000000000..c19bad98126e2c38707a6a32d9f77e9b876f0651 GIT binary patch literal 72579 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 jR>K4Gle$U}@}cs{V$Kw|no5icl$%Kd6g1 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 literal 0 HcmV?d00001