{"id":13581033,"url":"https://github.com/TcMenu/LiquidCrystalIO","last_synced_at":"2025-04-06T06:32:26.007Z","repository":{"id":45299485,"uuid":"104553316","full_name":"TcMenu/LiquidCrystalIO","owner":"TcMenu","description":"IoAbstraction fork of Liquid Crystal Library for Arduino","archived":false,"fork":true,"pushed_at":"2025-02-15T08:59:04.000Z","size":138,"stargazers_count":6,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T07:01:28.542Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://arduino.cc/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"arduino-libraries/LiquidCrystal","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TcMenu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-23T08:32:48.000Z","updated_at":"2025-02-15T08:59:08.000Z","dependencies_parsed_at":"2023-01-31T07:15:50.759Z","dependency_job_id":null,"html_url":"https://github.com/TcMenu/LiquidCrystalIO","commit_stats":null,"previous_names":["tcmenu/liquidcrystalio"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TcMenu%2FLiquidCrystalIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TcMenu%2FLiquidCrystalIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TcMenu%2FLiquidCrystalIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TcMenu%2FLiquidCrystalIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TcMenu","download_url":"https://codeload.github.com/TcMenu/LiquidCrystalIO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445652,"owners_count":20939952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:01:57.429Z","updated_at":"2025-04-06T06:32:25.769Z","avatar_url":"https://github.com/TcMenu.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"## IoAbstraction Fork of Liquid Crystal Library for Arduino and mbed\n \nThis is a fork of the popular LiquidCrystal library that works with a wide range of Arduino and mbed boards. It's been refactored to work alongside IOAbstraction framework (https://github.com/TcMenu/IoAbstraction) so it supports direct pin connection, I2C via PCF8574, I2C via MCP23017, shift registers, and other supported expansion devices. All delays yield to TaskManager meaning that other tasks can run during these delays. As of V1.3 it is compatible with mbed RTOS framework as long as it is used with at least IoAbstraction 1.5.0, there is an example for mbed shipped with the library.\n\nThe main advantage of using this version is with task manager because it calls into task manager after every character is written, there are significant delays in the library code that are needed to wait for the display, these have been converted to yield operations in task manager, so that other tasks can run during these times. The only restriction this brings is that all rendering must be done in *one task only* to avoid causing display corruption. \n\n## Installation\n\n### Install for Arduino\nThe easiest way to install is via Arduino IDE Library Manager. It will also install the dependant library IoAbstraction for you.\n\nIf you decide to manually install - not recommended, copy this library to your libraries folder and then make sure that you have IoAbstraction library installed too. (https://github.com/TcMenu/IoAbstraction)\n\n### Install for PlatformIO (Arduino or mbed):\n\nInstall [LiquidCrystalIO from the platformIO library manager](https://platformio.org/lib/show/7242/LiquidCrystalIO).\n\n## Changes from the original version of LiquidCrystal\n\nThis library is 99% interchangeable with the original and we are working towards LCDAPI compliance as much as possible. Several extra examples have been added that demonstrate how to configure this library with various types of I2C device and a shift register. The difference are:\n\n1. All internal delays beyond initialization are now performed using taskManager's yieldForMicros() method. Meaning that the delay does not interfere with task manager operation. There is no external difference for this. **However, you must make sure that only one task updates your display if you choose to use task manager.**\n2. It is possible to change the IO between any IoAbstraction supported device, be it Arduino pins, shift register or supported I2C devices such as MCP23017 and PCF8574 backpacks. This is provided as an extra parameter to the constructor (defaults to Arduino pins). See examples HelloI2c, HelloShiftReg and Counter23017\n3. Supports creating characters in program memory using createCharPgm(charNumber, pgmBytes), see the modified CustomCharacter example.\n4. Inbuilt support for backlight via methods: configureBacklight(pin), backlight(), noBacklight() and setBacklight(onOrOff). The backlight can be PWM on Arduino.\n\n## Testing\n\nThis fork has been tested on various 16x2 displays both directly connected and i2c, various 20x4 displays, again directly connected and i2c, using a shift register and also using a DfRobot shield.\n\n## Extra features over the original\n\nThis libray has far greater control over the backlight than the original library. You can either use a pin on the same device (inverted or regular), or you can use PWM with an analog device, by default it would use the analog pin provided, but in future it could be an I2C DAC or potentiometer. See [TcMenu/IoAbstraction] for more on analog devices.\n\nWith this function you can set the backlight pin and set the mode to one of the below modes:\n\n    void configureBacklightPin(uint8_t backlightPin, BackLightPinMode mode = LiquidCrystal::BACKLIGHT_NORMAL);\n\nFor the backlight mode parameter, provide one of:\n\n        BACKLIGHT_NORMAL, BACKLIGHT_INVERTED,  BACKLIGHT_PWM\n\nThis function gives more control over PWM/Analog mode:\n\n    void configureAnalogBacklight(AnalogDevice* analogDevice, uint8_t backlightPin)\n    \nYou can then call setBacklight to change the level for PWM, or turn on/off for digital pins.\n\n    setBacklight(uint8_t level);\n\nSimpler construction for regular I2C backpacks:\n\n    LiquidCrystalI2C_RS_EN(globalVariableName, i2cAddress, isBacklightInverted)\n    LiquidCrystalI2C_EN_RS(globalVariableName, i2cAddress, isBacklightInverted)\n\nSimpler DfRobot shield construction by constructing the object with no parameters. For example:\n\n    LiquidCrystal lcd;\n\n## Original text:\n\nThis library allows an Arduino board to control LiquidCrystal displays (LCDs) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs.\n\nFor more information about this library please visit us at\nhttp://www.arduino.cc/en/Reference/LiquidCrystal\n\n### Original License (our modifications under same)\n\nCopyright (C) 2006-2008 Hans-Christoph Steiner. All rights reserved.\nCopyright (c) 2010 Arduino LLC. All right reserved.\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, write to the Free Software\nFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTcMenu%2FLiquidCrystalIO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTcMenu%2FLiquidCrystalIO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTcMenu%2FLiquidCrystalIO/lists"}