Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gavinlyonsrepo/hd44780_lcd_pcf8574_pico

Library to support the HD44780 LCD , (I2C PCF8574 "backpack" interface) for the RPI PICO RP2040 C++ SDK
https://github.com/gavinlyonsrepo/hd44780_lcd_pcf8574_pico

hd44780 hd44780-display i2c lcd lcd-display library pcf8574 pico pico-sdk raspberry-pi raspberry-pi-pico raspberrypi rp2040 rpi rpi-pico

Last synced: about 1 month ago
JSON representation

Library to support the HD44780 LCD , (I2C PCF8574 "backpack" interface) for the RPI PICO RP2040 C++ SDK

Awesome Lists containing this project

README

        

[![Website](https://img.shields.io/badge/Website-Link-blue.svg)](https://gavinlyonsrepo.github.io/) [![Rss](https://img.shields.io/badge/Subscribe-RSS-yellow.svg)](https://gavinlyonsrepo.github.io//feed.xml) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/paypalme/whitelight976)

![ lcd ](https://github.com/gavinlyonsrepo/pic_16F1619_projects/blob/master/images/LCDPCF.jpg)

# HD44780_LCD_PCF8574_PICO

## Table of contents

* [Overview](#overview)
* [Example files](#example-files)
* [Software](#software)
* [Output](#output)
* [Notes](#notes)

## Overview

* Name : HD44780_LCD_PCF8574_PICO

* Description :

0. Library to support the HD44780 LCD , (I2C PCF8574 "backpack" interface)
1. C++ library for the rp2040 PICO
2. Backlight, scroll, cursor and entry-mode control.
3. Custom character support + print class for numerical data.
4. Hardware I2C using SDK functions.
5. Tested on size 16x02 + 20x04
6. Can support both I2C ports. IC20 or IC21 selected by user.

* Toolchain
1. Raspberry pi PICO RP2040
2. SDK C++ compiler G++ for arm-none-eabi
3. CMAKE , VScode

* Port of my Arduino library at [link](https://github.com/gavinlyonsrepo/HD44780_LCD_PCF8574).

* Author: Gavin Lyons

## Example files

The example files are in example folder.
To build the one you want, edit the Cmaketxt file
add_executable(${PROJECT_NAME} section, comment in one example file path and one only.
The default is the HelloWorld one.

1. examples/HelloWorld/main.cpp Basic usage.
2. examples/TestRun/main.cpp Test sequence for 16x02 LCD.
3. examples/TestRun20X04/main.cpp Test sequence for 20x04 LCD.

## Software

There are four core files to library , The "print" base class provides a way to print numerical and other data types to screen.

1. HD44780_LCD_PCF8574.hpp
2. HD44780_LCD_PCF8574.cpp
3. HD44780_LCD_PCF8574_Print.hpp
4. HD44780_LCD_PCF8574_Print.cpp

The user can enable basic "printf" I2C debug messages by setting the debug flag variable.
The I2C timeout is set to 50,000 uS and can also be adjusted if necessary .
Both I2C ports can be used, IC20 or IC21 selected by user.

**API**

The API (application programming interface) html documentation is at link. Hosted on github pages and generated by Doxygen software. Here the user will find lots of information on files, functions & data types. This API is for the Arduino source port. It is very similar
expect constructor, init and de-init I2C method's will be different.

[Software API Url Link](https://gavinlyonsrepo.github.io/misc/software_docs/HD44780_LCD_PCF8574/index.html)

## Output

Output of custom character test in testrun example file on 16x02 display.

![ pic ](https://github.com/gavinlyonsrepo/HD44780_LCD_RPI/blob/main/extras/image/custom_output.jpg)

20x04 display.

![ pic2 ](https://github.com/gavinlyonsrepo/HD44780_LCD_PCF8574/blob/main/extras/image/2004.jpg)

## Notes

For detailed graphical description of entry modes , cursor types, custom characters
and more see here [link](http://dinceraydin.com/lcd/commands.htm)

16X04 board not tested but should work.