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