https://www.jeremyblum.com/2011/07/31/tutorial-13-for-arduino-liquid-crystal-displays/
Tutorial 13 for Arduino: Liquid Crystal Displays