3.3V LCD

Hello all,

I have an Arduino Pro Mini 3.3V/8MHz. I want to use a 3.3V 1602 LCD with it. Do I need to get a separate LCD control chip? Are there possible problems?

Thanks

A "1602 LCD" is a display board which incorporates the HD44780 driver. Constructing a LCD display from scratch is not a job for the faint-hearted; you have to be a large manufacturer to ever consider that.

The special 3.3 V version of the "1602" display contains a voltage converter to provide 5 V to drive the actual LCD multiplexing (the HD44780 itself operates from 3.3 V anyway). If you have a 5 V 1602 display, you can see the unused pinout for that converter chip and the voltage selection links on it.

So I can buy a LCD and connect it to my 3.3V arduino and it will work? From what you've said, the driver is incorporated in the LCD so I don't have to worry about it. I was just worried about the voltages.

If I use the shift register for the LCD, I only need 3 pins for it?
https://code.google.com/p/arduinoshiftreglcd/

Instructions here are similar.

I need 4 pins for PWM control with the same PWM frequency so pins 5 and 6 can be used for the LCD. That's why I'm asking this.

Thanks.

Apocalypse:
So I can buy a LCD and connect it to my 3.3V Arduino and it will work? From what you've said, the driver is incorporated in the LCD so I don't have to worry about it. I was just worried about the voltages.

And well you might worry about the voltages! If you want to run it at 3.3 V, you want the special version of the LCD unit designed for 3.3 V. Perhaps you need to explain why you want to use a 3.3 V Arduino (and which sort you mean)?

Apocalypse:
If I use the shift register for the LCD, I only need 3 pins for it?
Instructions here are similar.

It is a cute novelty, but if you were using a 5 V display, much more practical just to get one of the $1 I2C "backpacks" from eBay. The suggestion on one of those sites that it makes the code "more complex" is utter nonsense as you use suitable libraries in any case. Actually, I suspect the I2C backpacks work perfectly well at 3.3 V anyway.

Apocalypse:
I need 4 pins for PWM control with the same PWM frequency so pins 5 and 6 can be used for the LCD. That's why I'm asking this.

The I2C interface uses only two pins - A4 and A5 - and can use them for many other attachments as well.

You do know that "analog" pins are actually digital pins, do you not?

I'm powering the Arduino and other stuff using a single Li-ion battery. I will get a 3.3V LCD for it. Also, regarding the "LCD control driver" I asked about earlier I meant the I2C backpacks. I just didn't know how to put it, sorry for not being clear. If it only uses A4 and A5 pins then it is perfect.

Thanks!

Apocalypse:
I'm powering the Arduino and other stuff using a single Li-ion battery. I will get a 3.3V LCD for it.

I rather suspected that. You may have a slight problem with the LCD contrast altering with the battery voltage, particularly when you charge the battery.

I think the backpack should work OK, not sure about the LED illumination though.

By LED illumination you mean the backlight of the LCD?

I found a LCD here, do you think it will work? Also, it says it has I2C interface. Does it mean it has an I2C backpack already or no?

Edit: Another thing, could I make a constant voltage boost converter to 5V and use it to power the LCD + backlight? I found this, I think this would work?

Apocalypse:
By LED illumination you mean the backlight of the LCD?

Yes.

Apocalypse:
I found a LCD here, do you think it will work? Also, it says it has I2C interface. Does it mean it has an I2C backpack already or no?

That looks quite reasonable. Yes the actual chip itself functions as the "backpack" for I2C. The datasheet suggests it resembles or emulates the HD44780 that is commonly used but you would need to find the library for using it with the I2C interface as I do not know whether those with which I am familiar, would match.

Apocalypse:
Another thing, could I make a constant voltage boost converter to 5V and use it to power the LCD + backlight? I found this, I think this would work?

That is one way of doing it, but it makes the I2C interface more tricky. See if someone here knows about the st7032i code for that display you found.

I found something interesting. A RGB backlit LCD. I'm however a bit confused about the RGB control. Here is the pin diagram. Pin 15 is LED+ and 16, 17, 18 are all - of the individual backlight LEDs. How would I control these LEDs? By PWM? But I thought the PWM signals are +?

Arduino PWM pins are push-pull. You can use PWM with regular active-low devices or with weird Arduino active-high devices.

The pin-out means that a standard 16x1 LCD can work as a drop-in replacement.

I quite agree that "active-high" is easier for humans to understand. Electrically it is not so convenient or flexible.

Regarding 3.3V operation. Most regular "5V" modules will work just fine at 3.3V. You just need the VO (contrast pin) to be at roughly VCC-4.5V e.g. +0.5V (5V) or -1.2V (3.3V).

Yes, you can generate a separate 5V supply for your LCD and run into level-translation problems when reading DDRAM or BUSY. Or simply generate a negative voltage for VO from a clock/pwm pin.

Life would be much simpler if the historic HD44780 chip could control its internal voltages with software like modern COG controllers. Then the VO pin would be redundant.

David.

Regarding the PWM active high and active low. I'm new to Arduino and didn't realize that it had that function. However, I need the PWM pins to drive something else simultaneously. I'll just use a white backlight LCD for simplicity unless there is a way to get more PWM pins on the Arduino. Would it be possible to connect 2 Arduinos and make one completely control the LCD and PWM the LEDs and the other to drive something else?

Regarding the contrast, I did not realize that it is possible to generate negative voltages using Arduino. That's great if it is possible. I'm using the Arduino 3.3V Pro mini does it have the capability to generate negative voltages also? The white LED backlight should work at 3.3V?

There are 6 PWM channels on a ATmega328P. The coloured backlight(s) look fun. You do not have to PWM all of them at once to get an impressive effect. In practice, the novelty will soon wear off and you will set it up for a steady colour (or a limited range of colours)

Yes, you can generate direct voltages with any "alternating" waveform. Google "charge-pump". You will need a resistor, capacitors and diode.

Are you running the Pro-Mini from a 3V battery or some other source via the regulator?

If you are using batteries, be realistic. You are better off with reflective displays that you can read with or without a backlight.

David.

You do not need negative voltages to drive such a backlight. You just need to invert the "sense" of the PWM by subtracting the value from 255 before passing it to the analogWrite function. The PWM'd outputs can drive the backlight inputs directly if the display has suitable on board current limiting resistors.

I've done this, it works fine.

You can drive the backlight LEDs with any PWM voltage that you like. Providing that you have enough to turn them on in the first place. i.e. > Vf.

I think that the topic was more about running "standard 5V" HD44780 displays. It is not much good having a pretty backlight if the letters do not show up !!!

David.

aarg:
You do not need negative voltages to drive such a backlight. You just need to invert the "sense" of the PWM by subtracting the value from 255 before passing it to the analogWrite function. The PWM'd outputs can drive the backlight inputs directly if the display has suitable on board current limiting resistors.

I've done this, it works fine.

Yeah I'm sure it works by subtracting 255 since the high signal is the low signal so inverting it would work. However, I need to use the pwm pins to drive something else and I won't have enough for the LCD.

I just found SoftPWM though which claims to be able to make any pin PWM using software. Arduino forum link here. Has anyone tried this?

Edit: Never mind, looks like it uses timer 2 which would interfere with my PWM pins.

Edit2: I found ShiftPWM which says it could control many PWM outputs using 3 data pins. This would be perfect since I would be able to use my PWM pins for something else and 3 data pins for adjusting the RGB LEDs. Using an IC2 backpack I could control the LCD with 2 pins. Would this work?

Also, could someone explain to me what a shift register is? I don't quite understand. Thanks!

aarg:
You do not need negative voltages to drive such a backlight.

Nor was any such thing suggested.

To operate a 5V LCD at 3.3V, you need to generate a negative contrast voltage.

Do I need to adjust the negative pin for the contrast voltage as the battery drains and lowers in voltage?

Apocalypse:
Do I need to adjust the negative pin for the contrast voltage as the battery drains and lowers in voltage?

Indeed you might if your power source is not regulated.

Yeah my power supply is a lithium battery. I guess I can make another pin detect the voltage and adjust accordingly?

Also as in my previous post, I found ShiftPWM which says it could control many PWM outputs using 3 data pins. This would be perfect since I would be able to use my PWM pins for something else and 3 data pins for adjusting the RGB LEDs. Using an IC2 backpack I could control the LCD with 2 pins. Would this work?

Could someone explain to me what a shift register is? I don't quite understand. Thanks!

I can't find how to get a negative voltage on the Arduino for the contrast pin without an external voltage inverter. Could someone help me?

Thanks!