Arduino中LCD1602液晶显示器使用

发布时间:2023年12月22日

目录

一、LCD160中字符串和计数显示

1、硬件介绍

2、引脚和接线说明

3、代码

二、LCD1602中显示超声波测量距离

1、硬件介绍

2、测试效果

3、代码


一、LCD160中字符串和计数显示

1、硬件介绍

1602液晶显示器

2、引脚和接线说明

单片机和测试模块接线

3、代码


//添加1602液晶屏库文件
#include <LiquidCrystal.h>

/*=======液晶屏引脚和单片机接线说明说明=======
 * 液晶屏        单片机       说明
 *  VSS         0V          电源地
 *  VDD         5V          电源5V
 *  V0          0V          对比度调整,0V最清晰
 *  RS          12          数据命令选择。高电平时选择数据寄存器,低电平时选择指令寄存器。
 *  RW          0V          液晶屏读写操作选择,0V表示只写操作。
 *  E           11          使能信号。由高电平变为低电平时执行命令
 *  D0                      D0-D7:8位双向数据线
 *  D1
 *  D2
 *  D3
 *  D4          5
 *  D5          4
 *  D6          3
 *  D7          2           
 *  A                       LCD背光电源正极,可选,可以直接接3.3V或接5V添加10KΩ电阻
 *  K                       LCD背光电源负极,可选.
 */

//定义液晶屏对应的引脚
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() 
{
  //设置LCD显示屏2行、16列
  lcd.begin(16, 2);
  //在LCD显示屏上显示字符串
  lcd.print("hello, world!");
}

void loop() 
{
  //设置光标开始位置第一行、第0列。(第0行是上面的行、第1行是下面的行)
  lcd.setCursor(0, 1);
  //在1602显示屏下面的一行,显示秒计数
  lcd.print(millis() / 1000);
}

二、LCD1602中显示超声波测量距离

1、硬件介绍

超声波HC-SR04

超声波模块接线

2、测试效果

15厘米测距

10厘米测距

串口显示超声波距离

3、代码


//添加1602液晶屏库文件
#include <LiquidCrystal.h>

const long _1000msTime = 1000;    // 1000 milli seconds
unsigned long _1000msLastTime;
const long _100msTime = 100;      // 100 milli seconds
unsigned long _100msLastTime; 
const long _10msTime = 10;        // 10 milli seconds
unsigned long _10msLastTime;

/*=======液晶屏引脚和单片机接线说明说明=======
 * 液晶屏        单片机       说明
 *  VSS         0V          电源地
 *  VDD         5V          电源5V
 *  V0          0V          对比度调整,0V最清晰
 *  RS          12          数据命令选择。高电平时选择数据寄存器,低电平时选择指令寄存器。
 *  RW          0V          液晶屏读写操作选择,0V表示只写操作。
 *  E           11          使能信号。由高电平变为低电平时执行命令
 *  D0                      D0-D7:8位双向数据线
 *  D1
 *  D2
 *  D3
 *  D4          5
 *  D5          4
 *  D6          3
 *  D7          2           
 *  A                       LCD背光电源正极,可选,可以直接接3.3V或接5V添加10KΩ电阻
 *  K                       LCD背光电源负极,可选.
 */

 //定义液晶屏对应的引脚
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

/*========超声波引脚说明=============
 * 
 * 
 * 
 */
const int EchoPin = 8; //超声波信号输入
const int TrigPin = 9; //超声波控制信号输出
int currDistance = 0; // 距离
 


//测量距离 单位厘米
long MeasuringDistance()
{
  long duration;
   
  digitalWrite(TrigPin, LOW); 
  delayMicroseconds(2); 
  digitalWrite(TrigPin, HIGH); //输出高电平,延时10ms
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  
  duration = pulseIn(EchoPin, HIGH); //接受返回信号
  return duration /58; //计算距离
}



void setup() 
{
  //设置LCD显示屏2行、16列
  lcd.begin(16, 2);  
  lcd.clear();
  //在LCD显示屏上显示字符串
  lcd.print("Distance is  cm");

  //超声波
  pinMode(EchoPin, INPUT); //声明各引脚模式
  pinMode(TrigPin, OUTPUT);
  
  //串口
  Serial.begin(9600);
}

void loop() 
{
  currDistance = MeasuringDistance(); //读取前端距离

  TimeProc();
}

void TimeProc()
{
  //1000ms执行一次
  if ((millis() - _1000msLastTime) >= _1000msTime)
  {
    _1000msLastTime = millis( );    
 
    //
    Serial.print("Distance is: "); 
    Serial.print(currDistance);
    Serial.println(" cm;");
  }
  //100ms执行一次
  if ((millis() - _100msLastTime) >= _100msTime)
  {
    _100msLastTime = millis( );  

    //设置光标开始位置第一行、第0列。(第0行是上面的行、第1行是下面的行)
    lcd.setCursor(0, 1);
    //在1602显示屏下面的一行,显示秒计数
    //lcd.print(millis() / 1000);
    lcd.print(currDistance);
    lcd.print("     ");
     
  }
  //10ms执行一次
  if ((millis() - _10msLastTime) >= _10msTime)
  {
    _10msLastTime = millis( );  

     //       
    
  }

}


文章来源:https://blog.csdn.net/panjinliang066333/article/details/135153955
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。