Arduino Uno与LCD1602显示屏连接问题解析及不显示故障排除

        使用Arduino Uno通过IO口控制显示LCD1602:

1、需要下载Arduino中的LiquidCrystal.h文件。

2、LCD引脚接线

//LCD1602显示屏引脚定义

//注意RW必须接地,且V0的对比度要调到126以下才有显示(没有接电阻)

 rs = 3;   

en = 2;

//这里我只用了四根数据线

d4 = 10;

d5 = 11;

d6 = 12;

d7 = 13;

//电源和地

//背光的电源和地

LCD上的A脚 = 5V

LCD上的k脚 = GND

//数据显示的电源和地

LCD上的VSS = GND

LCD上的VDD = 5V

3、已下是用Arduino Uno超声波测距显示到LCD屏上的代码。

#include <LiquidCrystal.h> //引入依赖

//LCD1602显示屏引脚定义

/* 初始化针脚 */

const int rs = 3;

const int en = 2;

//注意RW必须接地,且V0的对比度要调到126以下才有显示

const int d4 = 10;

const int d5 = 11;

const int d6 = 12;

const int d7 = 13;

const int lcdlight = 7; //调节对比度

#define TrigPin 8  //输出

#define EchoPin 9  //输入

float Value_cm;

int Count = 0;

 

LiquidCrystal lcd(rs, en,d4, d5, d6, d7);

void setup()

{

  delay(1000);

  Serial.begin(9600);

  //超声波数据脚初始化

  pinMode(TrigPin, OUTPUT);

  pinMode(EchoPin, INPUT);

  //LCD1602A初始化

  pinMode(lcdlight,OUTPUT);

  analogWrite(lcdlight, 126);//用于调节对比度(0-255)

  delay(1000);

  lcd.begin(16, 2);//设置LCD要显示的列数、行数,即2行16列

  lcd.clear();

  // //在LCD显示屏上显示字符串

  // lcd.print("Distance is  cm");

  //滚动显示效果

  // lcd.scrollDisplayLeft();//shifting data on LCD

}

void loop()

{

  digitalWrite(TrigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(TrigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(TrigPin, LOW);

  Value_cm = float( pulseIn(EchoPin, HIGH) * 0.034 )/2; //将回波时间换算成cm

  if(Value_cm > 500) Value_cm = 0xff;

  if(Value_cm < 0) Value_cm = 0;

  delay(100);//delay of 0.75sec

  lcd.setCursor(0, 0); //设置光标定位到第0列,第1行(从0开始)

  lcd.print("distance:");

  delay(100);//delay of 0.75sec

  lcd.setCursor(0, 1); //设置光标定位到第0列,第2行(从0开始)

  lcd.print(String(Value_cm) +"  CM   ");//打印从重置后的秒数

}

 

作者:scvmiso

物联沃分享整理
物联沃-IOTWORD物联网 » Arduino Uno与LCD1602显示屏连接问题解析及不显示故障排除

发表回复