Arduino中LCD1602液晶显示器使用

news2025/1/21 22:03:54

目录

一、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( );  

     //       
    
  }

}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【clickhouse】在CentOS中离线安装clickhouse

一、下载地址 通过以下链接进行rpm安装包的下载 https://packages.clickhouse.com/rpm/stable/ 根据需求下载对应版本 注意&#xff1a;ClickHouse 20.8.2.3版本新增加了 MaterializeMySQL 的 database 引擎&#xff0c;该 database 能映射到 MySQL 中的某个 database&#…

如何恢复SD卡剪切丢失的照片

SD卡照片剪切丢失是常见问题&#xff0c;这通常是由于多种原因造成的。一方面&#xff0c;SD卡可能存在质量问题&#xff0c;如制造缺陷或使用了低质量的存储芯片。另一方面&#xff0c;错误的操作方式也可能导致照片丢失&#xff0c;如没有先进行备份就直接剪切照片&#xff0…

前端常用的开发工具

前端常用的开发工具&#x1f516; 文章目录 前端常用的开发工具&#x1f516;1. Snipaste--截图工具2. ScreenToGif--gif图片录制3. Typora--Markdown编辑器4. notepad--文本代码编辑器5. uTools--多功能工具6. EV录屏--录屏软件7. Xmind--思维导图8. Apifox -- 接口调试9. Tor…

vue element plus 管理系统路由菜单简要设计(后端获取菜单)

1 需求 管理系统“菜单”由后端接口返回&#xff0c;前端需要根据后端返回的“菜单”数组&#xff0c;构造路由&#xff0c;渲染侧栏菜单有些菜单是子菜单&#xff0c;有对应的路由&#xff0c;但是不在侧栏显示&#xff08;比如一些详情页面&#xff09; 注&#xff1a;这里的…

nmap端口扫描工具安装和使用方法

nmap&#xff08;Network Mapper&#xff09;是一款开源免费的针对大型网络的端口扫描工具&#xff0c;nmap可以检测目标主机是否在线、主机端口开放情况、检测主机运行的服务类型及版本信息、检测操作系统与设备类型等信息。本文主要介绍nmap工具安装和基本使用方法。 nmap主…

循环神经⽹络中的梯度算法GRU

1. 什么是GRU 在循环神经⽹络中的梯度计算⽅法中&#xff0c;我们发现&#xff0c;当时间步数较⼤或者时间步较小时&#xff0c;**循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸&#xff0c;但⽆法解决梯度衰减的问题。**通常由于这个原因&#xff0…

Android模拟器的安装和adb连接

一、前置说明 APP 自动化可以使用真机进行测试&#xff0c;也可以使用模拟器来模拟安卓设备。我们可以根据个人喜好安装模拟器&#xff0c;个人推荐安装两款模拟器&#xff1a;网易 MuMu 模拟器、夜神模拟器。 MuMu模拟器可以支持 Android 12 版本&#xff0c;优点是&#xf…

服务器经常死机怎么办?如何处理

关于服务器死机这一话题相信大家是不会陌生的&#xff0c;平时在使用服务器的过程中&#xff0c;或多或少都是会有遇到过。轻则耽误业务开展&#xff0c;重则造成数据丢失&#xff0c;相信每个人都不想碰到服务器死机的情况。下文我也简单的介绍下服务器死机的原因以及对应的预…

进程间通信---无名管道

无名管道和有名管道的区别&#xff1a; 无名管道只能用于父进程和子进程之间通信&#xff0c;而有名管道可以用于任意两个进程间通信 管道工作的原理&#xff1a; 切记&#xff1a;无名管道一旦创建完成后&#xff0c;操作无名管道等同于操作文件&#xff0c;无名管道的读端/写…

全网超细,Pytest自动化测试YAML数据驱动实战(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、YAML简介 yam…

acwing Linux 租云服务器环境配置

今天给大家讲解acwing Linux 租云服务器&环境配置&#xff0c;这里以阿里云为例子给大家讲解一下如何租用这个云服务器&#xff0c;现在有阿里云、华为云、腾讯云、京东云这么几个大的服务系统&#xff0c;我个人是喜欢华为云的嘻嘻&#xff0c;因为个人比较喜欢华为公司&a…

React 中的 ref 和 refs:解锁更多可能性(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【ITK库学习】使用itk库进行图像配准:内插器(插值)

目录 1、itkNearestNeighborInterpolateImageFunction 最近点插值2、itkLinearInterpolateImageFunction 线性插值3、itkBSplineInterpolateImageFunction B样条插值4、itkWindowedSincInterpolateImageFunction 窗口化Sinc插值5、itkRayCastInterpolateImageFunction 投射插值…

阿里云ECS配置IPv6后,如果无法访问该服务器上的网站,可检查如下配置

1、域名解析到这个IPv6地址,同一个子域名可以同时解析到IPv4和IPv6两个地址&#xff0c;这样就可以给网站配置ip4和ipv6双栈&#xff1b; 2、在安全组规则开通端口可访问&#xff0c;设定端口后注意授权对象要特殊设置“源:::/0” 3、到服务器nginx配置处&#xff0c;增加端口…

虾皮跨境电商的收款方式及选择指南

虾皮&#xff08;Shopee&#xff09;作为一家知名的跨境电商平台&#xff0c;为卖家提供了多种收款方式&#xff0c;以满足不同卖家的需求。本文将介绍虾皮跨境电商平台的主要收款方式&#xff0c;并提供选择指南&#xff0c;帮助卖家根据自身需求和目标市场选择最合适的收款方…

AutoEncoder个人记录

原理 最常见的降维算法有主成分分析法PCA&#xff0c;通过对协方差矩阵进行特征分解而得到数据的主要成分&#xff0c;但是 PCA 本质上是一种线性变换&#xff0c;提取特征的能力极为有限。 AutoEncoder把长度为d_in输入特征向量变换到长度为d_out的输出向量&#xff0c;借助于…

深圳鼎信|输电线路防山火视频监控预警装置:森林火灾来袭,安全不留白!

受线路走廊制约和环保要求影响&#xff0c;输电线路大多建立在高山上&#xff0c;不仅可以减少地面障碍物和人类活动的干扰&#xff0c;还能提高线路的抗灾能力和可靠性。但同时也会面临其它的难题&#xff0c;例如森林火灾预防。今天&#xff0c;深圳鼎信智慧将从不同角度分析…

福FLUKE禄克8808A数字多用表

福禄克8808A&#xff0c;用于制造、研发、维修等应用的多功能数字表&#xff0c;FLUKE 8808A 5.5位数字多用表可以完成当今众多常用的测量工作。无论是功能测 展开 福禄克8808A&#xff0c;用于制造、研发、维修等应用的多功能数字表&#xff0c;FLUKE 8808A 5.5位数字多用表可…

NiNNet

目录 一、网络介绍 1、全连接层存在的问题 2、NiN的解决方案(NiN块) 3、NiN架构 4、总结 二、代码实现 1、定义NiN卷积块 2、NiN模型 3、训练模型 一、网络介绍 NiN&#xff08;Network in Network&#xff09;是一种用于图像识别任务的卷积神经网络模型。它由谷歌研究…

node-red:使用node-red-contrib-amqp节点,实现与RabbitMQ服务器(AMQP)的消息传递

node-red-contrib-amqp节点使用 一、简介1.1 什么是AMQP协议?1.2 什么是RabbitMQ? -> 开源的AMQP协议实现1.3 RabbitMQ的WEB管理界面介绍1.3 如何实现RabbitMQ的数据采集? -> node-red 二、node-red-contrib-amqp节点安装与使用教程2.1 节点安装2.2 节点使用2.2.1 amq…