I've followed this tutorial here to use an LCD with a 74HC595 shift register to free up some pins and use what I currently have; I've got the sketch and hardware working with my Arduino UNO, but the real microcontroller I'll be using is an Arduino Nano ESP32, and I've noticed that all the same pin configurations and software does not work. The LCD screen just displays nothing. I know it shouldn't be a problem with the hardware, as the SPI pin configurations are the same (at least I'm sure). I've had issues with compatibility regarding the ESP32 ever since I got it, but I'd really like to use a shift register as opposed to I2C (I have a shift register currently but no I2C module, therefore it makes sense to just try use what I have). Could someone help me with this compatibility issue? I just need to free up some pins, as I've also purchased an illuminated momentary push button which changes colour when the polarity is reversed (Green/Red), and I'd need 2 digital pins free (I only have A7 free and have had to use A6 as a digital input pin, which hasn't been ideal). I've tried using the default and legacy pin configurations, and have followed the sketch exactly, so all of the information is available with the link, but it just isn't working with my Arduino Nano ESP32-S3.
try LiquidCrystal lcd(D9);
in the example sketch
I tried both default and legacy with D9 as the latch pin, but it didn't change anything. Nothing is being displayed on the LCD. Do you think it may have to do with logic level shifting? Hence it's working fine with the UNO, but the ESP32 works on 3v3 logic. However, I'm using an SD card module which does not operate on 3v3 (it has a 3v3 -> 5v level shifter IC, which is a little bit annoying as it is pretty difficult to find an SD module which solely operates off 3v3 despite using 3v3 logic), and it works fine when connected to VBUS.
try the display without anything else wired to the board.
Adafruit SD modules are OK
That is just the display wired to the board via the 74HC595 using SPI pins. I haven't tried implementing the SD card yet, I just want the LCD to work first.
Edit: I bought an I2C adapter so all the connections are easier now.