Bars in Crystal LCD Retro Style

Last Updated on 1 March 2022 by Suffocation

I'm always surprised that there are still a few readers on this blog. Recently, Siegfried wrote to me and mentioned that he wanted to display some bars on a Crystal LCD display, asking if I'd ever done it before. The answer was no, but that was about to change.

Facts

Parts list

Arduino One

Arduino LCD Shield

Areas of application

  • Representations of measured values as a function of time
  • Equaliser visualisation

Views

It's there at the end 😉

Analyse

Such an LCD display consists of several rows and columns. Only one character fits into each row and column combination.

LCD Crystal Display – Construction

The pixels of a character cannot be addressed individually, but it is possible to create custom characters.

LCD Crystal Display – Structure of a Character

So I’ve created a symbol for each level. I’ve left out the ‘empty’ symbol because my display shows the same as C8, and as I clear the display beforehand, it makes no difference.

LCD Crystal Display – New symbols for the bars

To be able to use both lines, the respective results must be split in two (more splits are needed for more lines); if the lower line is full (i.e. C8), it continues with the upper line.

LCD Crystal Display - Bars over more than one line

The values for each bar are stored in an array. The array is then directly converted into the bars.

Programming

Libraries

The library for the display is already included in the Arduino GUI.

#include

Test programme

The test program generates a new random value every 4 seconds. With each new value, the results in the array are shifted one position to the right. If the array is full, the last value is discarded.

And that's how it looks:

LCD Crystal Display - Function video, unfortunately a bit long 😉

Problems

Quirky fragments in the custom characters

If I change the order in the setup, i.e., add the custom characters before I output anything to the display, I get these fragments. I assume the display init still has an error in the library, and it's only properly initialised with the first output.

Miscellaneous

nix.

Conclusion

Once the function of the display was clear and I knew I had to go via the custom characters, it was child's play. Organising the data in an array offers a good way to manipulate it later and process it in loops. I hope you like it, many thanks to Siegfried for the idea, if you have any further wishes for expansion or questions, please leave a comment.

Related Posts

Sources

https://www.arduino.cc/en/Reference/LiquidCrystal

https://de.wikipedia.org/wiki/Fl%C3%BCssigkristallanzeige

https://maxpromer.github.io/LCD-Character-Creator/

https://www.hackster.io/jacoslabbert99/arduino-lcd-icons-custom-characters-548f38

Leave a Reply

Your email address will not be published. Required fields are marked *