Go Down

Topic: Can i connect two 16x4 lcd displays to arduino meg (Read 10 times) previous topic - next topic

machtigespa

Feb 12, 2010, 11:04 am Last Edit: Feb 12, 2010, 11:04 am by machtigespa Reason: 1
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.

But before i start is it possible and how do i connect 2 displays?

TchnclFl

I suppose it's possible if you have enough pins (which the Mega does).

You'd just connect them to separate pins, and start two instances of the LCD library.

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.

floresta

#2
Feb 12, 2010, 04:09 pm Last Edit: Feb 12, 2010, 04:10 pm by floresta Reason: 1
Quote
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.

Don

KenH

Don, How do you enable the E lines for the separate displays? Do you use the standard LiquidCyrstal library now used?

Perhaps a snippet of sample code to display "hello World" and "Hey World" on each display?

Thanks,
Ken H>

floresta

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.

Don

floresta


KenH

OH Boy!!!!  Don - I'm getting my popcorn ready :) 8-) ::)

That seems like a useful bit of info to learn.

Ken H>

floresta

#7
Feb 13, 2010, 12:04 am Last Edit: Feb 13, 2010, 12:20 am by floresta Reason: 1
Here's the code I used .  All I did was add a few lines to the 'hello, world!' example code.

Code: [Select]

// 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);
LiquidCrystal lcd2(12, 10, 5, 4, 3, 2);

void setup() {
 // set up the LCD's number of rows and columns:
 lcd.begin(16, 2);
 // Print a message to the LCD.
 lcd.print("hello, world!");
 
 lcd2.begin(16, 2);
 // Print a message to the LCD.
 lcd2.print("hey, world!");
 
   lcd2.setCursor(0, 1);
   lcd2.print("it works!");
}

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.

It's fixed - Here's the photo:



Don

thegeekway

So this can be done using just 1 extra pin? Will extra LCDs drastically effect the performance of the 'duino?

floresta

#9
Feb 13, 2010, 02:58 am Last Edit: Feb 13, 2010, 03:00 am by floresta Reason: 1
thegeekway:

Quote
Will extra LCDs drastically effect(sic) the performance of the 'duino?

Probably not, within reason.




Don

KenH

#10
Feb 13, 2010, 03:39 am Last Edit: Feb 13, 2010, 03:43 am by KenH Reason: 1
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!!!

Ken H>

floresta

Ken:

Quote
Then for #3 and 4 LCD you used lcd3.print and lcd4.print?

You got it ...

 lcd3.begin(16, 2);
 lcd3.print("LCD #3");
 
 lcd3.setCursor(0, 1);
 lcd3.print("it still works!");

 lcd4.begin(16, 2);
 lcd4.print("LCD #4");
 
 lcd4.setCursor(0, 1);
 lcd4.print("Send more LCDs");


Don

machtigespa

thx for the info.

great community.

i'm actually completely new to arduino and C, but im learning quick

Pumbaa

i though of using Photoshop to overwhelm you....
;)

digimike

Dumb question but just want to be sure. I'm thinking of getting a 20x4 LCD to go along with the 16x2 i already have. So am i safe to assume that i can hook like the above examples?

I figure all i'd have to do is declare the 2 screen in setup correctly. For example:
Code: [Select]
// 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);
LiquidCrystal lcd2(12, 10, 5, 4, 3, 2);

void setup() {
 // set up the LCD's number of rows and columns:
[glow] lcd.begin(20, 4);[/glow]
 // Print a message to the LCD.
 lcd.print("hello, world!");
 
 [glow]lcd2.begin(16, 2);[/glow]
 // Print a message to the LCD.
 lcd2.print("hey, world!");
 
   lcd2.setCursor(0, 1);
   lcd2.print("it works!");
}

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



Like i said stupid question but just want to be sure.

Go Up
 

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.
Name:
Email:

shortcuts: alt+s submit/post or alt+p preview