Arduino通过I2C控制1602LCD显示屏

Arduino通过I2C控制1602LCD显示屏

[var1]

对比度太高,实际输出了文字但是无法看到,需要弄螺丝刀电位器,此外出错原因还有地址不对,可通过文末代码进行测试。

1u1zdlzqpen.JPEG

[var1]

对比度调节

地址是否正确

接线

GND ------ 地线

VCC ------ 电源(5V or 3.3v 电源不同显示效果有点差别)

SDA ------ I2C 数据线

SCL ------ I2C 时钟线

注意显示文字长度

[var1]

lcd.init(),lcd初始化

setCursor(x,y),设置起始坐标

lcd.print(),显示内容

lcd.clear(),清空显示屏

lcd.backlight(),开启lcd背光灯

[var1]

下列代码包含两个部分,前半部分为正常驱动LCD显示屏,后半部分(注释掉了)用于寻找LCD物理地址。

//LingShun lab

#include

#include //引用I2C库

//设置LCD1602设备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()

{

lcd.init(); // 初始化LCD

lcd.backlight(); //设置LCD背景等亮

}

void loop()

{

lcd.setCursor(0,0); //设置显示指针

lcd.print("LCD1602 I2C"); //输出字符到LCD1602上

lcd.setCursor(0,1);

lcd.print(" Hello");

delay(1000);

}

/*********************************************************************/

//查找LCD地址的程序 I2C Scanner

/*

#include

void setup() {

Serial.begin (115200); // Leonardo: wait for serial port to connect

while (!Serial) { }

Serial.println ();

Serial.println ("I2C scanner. Scanning ...");

byte count = 0;

Wire.begin();

for (byte i = 8; i < 120; i++) {

Wire.beginTransmission (i);

if (Wire.endTransmission () == 0) {

Serial.print ("Found address: ");

Serial.print (i, DEC);

Serial.print (" (0x");

Serial.print (i, HEX);

Serial.println (")");

count++;

delay (1); // maybe unneeded?

} // end of good response

} // end of for loop

Serial.println ("Done.");

Serial.print ("Found ");

Serial.print (count, DEC);

Serial.println (" device(s).");

} // end of setup

void loop() {}

*/

输出结果

7d7379f4863aca0982378dc2673f9d9b.png

Arduino通过I2C控制1602LCD显示屏相关教程

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐