ARDUINO LCD CUSTOM ICONS
Did you ever wonder how you can generate your own icons or characters on one of the LCDs
In this instructable, I will provide examples for a house, thermometer and humidity sensor. Animations for a rain storm and cup anemometer is also included. Others may follow. I used tinkercad.com to simulate the circuit since I only have 3.3 volt (Power and Logic) LCD screens (suitable for raspberry pi's and ESP32's) and not the 5 volt ones for arduinos. Tinkercad circuits is very useful. If you want to generate your own circuits and LCD icons, you do not need an Arduino on hand.
Skills required:
Understanding of circuits
Arduino Programming
Supplies
Arduino Uno or some other Arduino
LCD 16x2 or 20x4. Make sure it is for 5 volt Power and Logic (some is 3.3 volt). Most LCD's use the HD44780 controller and will be compatible with this code
Lots of Male to Male jumpers
Breadboard
Potentiometer (Try anything from 5 KOhms-250KOhms). 5 KOhms work well in Tinkercad. Most resources use 250 KOhms
220 Ohms resistor
BUILD YOUR CIRCUIT AND LOAD SKETCH
Build your circuit exactly as in the image. Make sure the Arduino and LCD is not powered.
Load a Arduino Sketch attach (There is a vew). You may study the sketch to understand how it works. Valuable info can be found on https://www.engineersgarage.com/arduino/making-cus...
Basically each each block in the 16x2 matrics have a sub matrics of 8x5 dots or bits. each of this bits need to be switched on or of.
My sketches use 4 of these blocks to create one icon
For the above image the code will be
byte dots[8]={B00000, B00000, B01010, B00000, B10001, B01110, B00000, B00000}
RUN YOUR CIRCUIT
If you want more detail on how the LCD works (Memory etc), the following resource is very useful
https://www.engineersgarage.com/arduino/making-cus...
The Circuit and sketch is public on Tinkercad. You can experiment with it
https://www.tinkercad.com/things/g6IFAg6ayAL-lcd-16x2weathericons-v2/editel
The following page https://maxpromer.github.io/LCD-Character-Creator/ may assist you in designing your characters
You can also run this with an ESP32 (I tested it on a WEMOS LoLin32). You may have to change your pinout to suite your ESP and the initialization line in the sketch
My ESP32 Pinout is attached in the word document. Remember to use a 3.3v LCD for ESP32 (5v LCD is for ARDUINO)