Is it technically possible to connect 2 16x4 lcd display's to arduino mega? I want to develop a system for my ppo volvo 740 diesel. I want to place 2 displays. One that shows constantly the temperature measured on different places in the system. And the other display will tell me if system is on temperature, if system will switch automatically or manual, and all the other stuff im thinking about.

Someone once mentioned that you could share all the data lines and have separate enable pins so that you could technically use two with only 16 pins, but I have no idea how well / if that even works.

There's no reason for it not to work - this is precisely how the 40x4 displays are configured except that both of its 20x4 displays are in the same glass enclosure. You share the RS line (and the R/W if used) in addition to the data lines. Only the E lines are separate.

Ken:I'm afraid I can't give you any ironclad answer to this because I tinker mostly with assembly language (on arduino clone hardware).

As TchnclFl mentioned, you have to start two instances of the LCD library which I think you would do somewhat like this:LiquidCrystal lcd1(12, 11, 5, 4, 3, 2);LiquidCrystal lcd2(12, 10, 5, 4, 3, 2);(note that the Enable lines are assigned to different pins)

I have been wanting to try this for a while - I'll try to do something this afternoon and get back to you. It will give me an opportunity to use the real Arduino that I got in the Sparkfun free day.

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);}

I have a nice picture, but the ftp access to my web space is not working at the moment. I'll add it when I can.

That is just too slick!!! It looks like the LiquidCrystal knows which LCD to print to by the LCD.print vs lcd2.print just by the defining the LiquidCrystal lcd2 wiring? Then for #3 and 4 LCD you used lcd3.print and lcd4.print?

That is just too slick! I'll have to try that over the weekend - THANK YOU!!!

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);}