LCD display: Printing inverted characters?


I have a standard LCD-display with 2x16 characters. I am using the standard Arduino library for displaying text on in.
Now I wanted to know, if it is possible to display an inverted character? Meaning not black character on white background, but white character on black background??

Thanks a lot!

Hm, no one knows? Maybe, it is off-topic here? Should I switch to the Software-board?

Asking the same question on a different thread after two hours is not likely to give you any faster answers and its not considered good forum etiquette.
I believe the only way to invert a character on a standard display is to create you own custom character, but this limits you to up to eight characters.

Although I'm not an expert, as far as I know, there's no feature of the HD47780 to do that.

There are some displays (like the currently-very-popular "white-on-blue" ones) that work that way by design, though.


Thanks a lot for your answers! Hm, I think both ways should not work for me, because I would like to invert the characters not for the whole display, but for single characters.

The idea is to have an "Edit mode", with a highlight on a digit, which the user can edit. You could e.g. edit a number, let´s say 12345, by pointing the cursor to the '4', pressing 'up' 2 times to change it to 6, so it would look like 12365.

Does anyone have an idea, how to solve this?

P.S.: And my intention was not to push up my thread. I was really in doubt putting the thread into the right board

I haven't tried it you could turn the underline cursor on for the characters you want to highlight. Have a look at the LiquidCrystal tutorial page for a version of the Library sets the underline cursor on and off

1 Like

Thats a brilliant idea! I will try this right after the work today, thanks so far!

Yes, it worked!

Here is the code I used so far:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(49, 47, 45, 43, 41, 39, 37, 35, 33, 31, 29);

void setup() {
  // set up the LCD's number of rows and columns: 
  lcd.begin(2, 16);
  // turn on the cursor:

void loop() {

Thanks again for all helpers!

I don't know much about the internals of modern LCD's but in the 'olden' days we had a polarizing filter that was a flexible plastic that covered the glass LCD screen.

If you peeled it off and reinstalled it flipped over, it polarized it into a negative character display.

I haven't had a a newer one come my way that I felt like sacrificing to find out if they still have this or not, but If I do, I'll let you know.

Thanks brutus, but the OP wants to highlight selected text displayed in a menu. Changing the entire LCD display would not address this.