LCD with Arduino Due

Hi,
I have a problem with my arduino due , as we know Due provide only 3.3V on its output pins , and LCD need 5V to run !!
how I can control LCD and display on it using Arduino Due ? ???
help please !
any idea ?

You need a level shifter IC. It literally takes your 3.3 and makes it a 5v provided thats you Vref

in fact i tried to use "buffer" IC
but it doesn't work !!

As long as you power your LCD with 5v you will probably find that its data and control lines work with 3.3v logic levels.

Don

i powered my LCD with 5V , but control and data lines do not work !!

to make sure , i measure the output voltage from the arduino pins using voltmeter and it was 2.6 V only !!

to make sure , i measure the output voltage from the arduino pins using voltmeter and it was 2.6 V only !!

You really should use an oscilloscope, not a voltmeter.

Does the same LCD controlled by the same program work OK on a 5V Arduino?

Don

Just like floreta said. Use a scope, otherwise you just rediscovered PWM :sunglasses:

Does the same LCD controlled by the same program work OK on a 5V Arduino?

yes !! the same LCD controlled by the same program on Arduino uno and it work!

Well we can't make many more guesses with the information that we have.

I guess you are going to have to break down and tell us specifically which LCD you are using and provide us with the sketch that works/doesn't work.

Don

here the code and my lcd ,,, work on arduino uno but doesn't work on Due !!

(my Due is not broken becouse I tried it and it worked properly! )

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16,4) ;
// Print a message to the LCD.
lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}

1964258_803232023087882_135812007_n.jpg

11041344_803231969754554_1130011877_n.jpg

eurekaaaaa !
I think that the problem was in LCD !! my LCD runs on 5V but there is onother vesion of LCD's run on 3.3V !!!
so , I have to buy a new one and I hope it works :]

thanks every one :smiley: