更改液晶屏蔽的地址

时间:2016-06-10 12:04:57

标签: arduino arduino-uno lcd

我正在研究一个项目,而我正在使用一个arduino Uno。我想使用4个屏蔽(OLIMEX Shield lcd 16x2)来打印数据(每个lcd的数据)。所以,我想我必须给每个lcd一个地址(或ID)。我在网上搜索了一些东西,但我没有找到答案。

你有什么建议吗?

提前谢谢。!!

1 个答案:

答案 0 :(得分:0)

我已经问过这个问题了,我现在有了答案。

好吧,使用屏蔽型" OLIMEX Shield lcd 16x2"与使用名为" LCD16x2.h"的库有关,它需要使用I2C协议,而且这个库不允许你改变lcd的属性。在这个库中,你必须以这种方式初始化你的lcd:

    LCD16x2 lcd;

解决方案是使用普通的lcd 16x2,它允许您使用引脚配置。 4 lcd的代码是这样的:

#include <LiquidCrystal.h>

// You only have to change your second number, make 11 or 10 or 9...


LiquidCrystal lcd1(12, 11, 5, 4, 3, 2);
LiquidCrystal lcd2(12, 10, 5, 4, 3, 2);
LiquidCrystal lcd3(12,  9, 5, 4, 3, 2);
LiquidCrystal lcd4(12,  8, 5, 4, 3, 2);

void setup()
{
// Your code
  lcd1.begin(16, 2);
  lcd2.begin(16, 2);
  lcd3.begin(16, 2);
  lcd4.begin(16, 2);

  lcd1.print("text1");
  lcd2.print("text2");
  lcd3.print("text3");
  lcd4.print("text4");

}

void loop()
{

  lcd1.setCursor(0, 1);
  lcd2.setCursor(0, 1);
  lcd3.setCursor(0, 1);
  lcd4.setCursor(0, 1);

  lcd1.print("anythingYouWant");
  lcd2.print("anythingYouWant");
  lcd3.print("anythingYouWant");
  lcd4.print("anythingYouWant");
}

谢谢大家!!