gmcmurry:
I will buy you breakfast if you can get me over this hump...
Now what do I do?
Dump the libraries you are using for some other libraries.
Use SoftwareWire and hd44780 - both are available in the library manager.
While I don't have a Pro Micro, I did test this on a Leonardo which is the same h/w and uses the same core as the micro.
The only difference being the LED definitions.
Here is a sample sketch to show how to use those libraries:
#include <SoftwareWire.h>
const int sda=A0, scl=A1;
SoftwareWire Wire(sda,scl);
#include <hd44780.h>
#include <hd44780ioClass/hd44780_I2Cexp.h>
hd44780_I2Cexp lcd; // declare lcd object and let it auto-configure everything.
void setup()
{
int istatus;
istatus = lcd.begin(16,2);
if(istatus)
{
// LCD initalization failed.
// handle it anyway you want
if(istatus < 0)
istatus = -istatus;
lcd.fatalError(istatus); // blinks error if LED_BUILTIN is defined
}
lcd.print("Hello, World!");
}
For more information on hd44780, see the github page:
And there is a "Documentation" example sketch where you can find many more links to information.
Please have a read of the documentation and the wiki as it contains vital information about the library and how and where the examples are located.
The i/o class for LCDs that use i2c expander backpacks is hd44780_I2Cexp
The library also includes a diagnostic sketch, I2CexpDiag, to help diagnose s/w or h/w issues with i2c lcd backpacks.
hd44780 is faster, is easier to install, and has many additional features over newLiquidCrystal, including it can auto configure itself so it is easier to use.
And BTW,
I like pancakes.... ![]()
--- bill