第九篇、基于Arduino uno,用LCD1602(带IIC的)显示屏显示字符——结果导向

news2024/9/20 22:30:11

0、结果

说明:可以在LCD1602屏幕上面显示字符,实时的变量,也可以设置是否背光,如果是你想要的,可以接着往下看。

1、外观

说明:注意是带IIC通讯的LCD屏幕,外形如下。

 2、连线

说明:只需要连接四根线。
uno————LCD1602显示屏

      5V--------------VCC
   GND--------------GND
    SCL--------------SCL
    SDA--------------SDA

3、源程序

说明:采用非阻塞方式编写,一定时间更新一次屏幕,并将对应功能进行函数化,方便移植。

/****************************************lcd1602 part****************************************/
/*
   接线:
   VCC------5V
   GND------GND
   SDA------4
   SCL------5
   注意:如果没有显示的时候,需要确定IIC地址,或者调节电位器。
*/
#include <Wire.h>                                                         //调用库文件
#include <LiquidCrystal_I2C.h>                                            //调用库文件

LiquidCrystal_I2C lcd(0x27, 16, 2);                                       //配置LCD地址及行列


#define lcd1602TimeInterval 1000                                          //检测一次的时间间隔                   
unsigned long lcd1602Times = 0;                                           //记录设备运行时间
/****************************************set up and loop part*********************************/
void setup() {
  lcd.init();                                                             //初始化LCD
  lcd.backlight();                                                        //打开背光   注意:如果电流不够的时候,可以将背光关闭
}
void loop() {
  lcd1602Show();                                                          //lcd显示内容
}
/****************************************lcd1602 part****************************************/
/*lcd显示内容*/
void lcd1602Show() {
  if (millis() - lcd1602Times >= lcd1602TimeInterval) {                   //一定时间执行一次
    lcd1602Times = millis();

    lcd.setCursor(3, 0);                                                  //设置显示位置
    lcd.print("Arduino.");                                              //显示字符数据
    lcd.setCursor(6, 1);                                                  //设置显示位置
    lcd.print("1314");                                                    //显示字符数据
  }
}

4、注意事项

说明:需要下载对应的库文件才不会编译报错。如果代码下载进去的时候,没有显示内容,需要调一下LCD背面的电位器,调到合适的位置就可以显示内容。

5、基本原理

        电压偏置:在LCD1602的背板上涂上一层液晶材料,同时在玻璃上加上两个电极片,这两个电极片上分别刻有正负电极。这时候,LCD两个电极片之间会形成一个电场,产生电势差,即电压偏置。
        光学偏振:在LCD1602的两片电极片中间夹着一层液晶材料,在液晶材料中夹杂着向特定方向偏振的光分子。当液晶材料中没有电场时,这些光分子就会保持其原来的偏振方向。当电场被施加到液晶材料中时,光分子就会旋转一定的角度,从而使得光子偏振方向发生改变。
        显示控制:在LCD1602的两个电极片中间加入一个控制电路,通过控制电路中的信号,可以改变液晶分子的状态从而使得像素区域能够显示出不同的颜色,从而显示出所需要的字符和图形等信息。

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

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

相关文章

Hexo写文章不方便?用上GitHub Actions真的是泰裤辣

对于做个人博客的小伙伴来说 HEXO 大家肯定都是非常熟悉的吧,这是一个静态的个人博客程序,通过 HEXO + GitHub Pages 搭建免费个人博客也是很多博主的选择。但相信肯定也会有些困恼,比如博客的渲染维护太麻烦了,我要在一台新设备上写博客并推送到 GitHub Pages 还要先安装 …

【Redis】聊一下哨兵集群

上一篇中&#xff0c;介绍了哨兵机制可以减少主库实例下线的误判率&#xff0c;但是如果只有一个哨兵实例&#xff0c;出现宕机后没有办法保证服务的高可用&#xff0c;所以一般实际的生产环境都是搭建3个哨兵实例构建的集群进行运行。但是具体的运行机制是什么。其实主要就是三…

使用langchain及llama_index实现基于文档(长文本)的相似查询与询问

文章目录 1. 引言2. 简介3. 带关键字的查询方案4. 不带关键字的总结询问5. 实现代码 1. 引言 在调用ChatGPT接口时&#xff0c;我们常常受到4096个字符&#xff08;token&#xff09;的限制。这种限制对于处理长文本或者需要对文档进行相似查询和询问的场景来说是一个挑战。然…

如何复制投票链接投票怎样链接到公众号投票链接如何生成

关于微信投票&#xff0c;我们现在用的最多的就是小程序投票&#xff0c;今天的网络投票&#xff0c;在这里会教大家如何用“活动星投票”小程序来进行投票。 我们现在要以“妙趣拾光”为主题进行一次投票活动&#xff0c;我们可以在在微信小程序搜索&#xff0c;“活动星投票”…

【Python开发】FastAPI 03:请求参数—请求体

除了路径参数和查询参数&#xff0c;还有请求体&#xff0c;其用于传递 JSON、XML 或其他格式的数据&#xff0c;以便服务器能够读取并做出相应的处理&#xff0c;可以说请求体的作用更为强大。试想一下&#xff0c;如果存在七八个参数&#xff0c;路径参数和查询是不是就招架不…

Camera | 10.linux驱动 led架构-基于rk3568

前面文章我们简单给大家介绍了如何移植闪光灯芯片sgm3141&#xff0c;该驱动依赖了led子系统和v4l2子系统。 V4L2可以参考前面camera系列文章&#xff0c;本文主要讲述led子系统。 一、LED子系统框架 Linux内核的 led 子系统主要功能&#xff1a; 为每个设备在/sys/class/le…

《Linux内核源码分析》(2)进程原理及系统调用

《Linux内核源码分析》(2)进程原理及系统调用 一、进程 操作系统的作用&#xff1a;作为硬件的使用层&#xff0c;提供使用硬件资源的能力&#xff0c; 进程的作用&#xff1a;作为操作系统使用层&#xff0c;提供使用操作系统抽象出的资源层的能力 进程、线程和程序的区别&…

【计算机视觉】Segment Anything 安装配置及代码测试(含源代码)

文章目录 一、前言二、安装2.1 基本要求2.2 Install Segment Anything 三、代码使用示例3.1 Automatically generating object masks with SAM3.2 Environment Set-up3.3 显示标注3.4 图像示例3.5 Automatic mask generation3.6 Automatic mask generation options 一、前言 目…

客户体验:响应速度是他们的 No.1 Pick么?

服务响应速度在为消费者提供服务时极为重要&#xff0c;那么&#xff0c;在消费者整体体验中&#xff0c;响应速度是否是消费者最在意的呢&#xff1f; 无论是对企业还是消费者来说&#xff0c;时间都至关重要。消费者在寻求客户服务时&#xff0c;不喜欢等待。根据《客户服务受…

【Python asyncio】零基础也能轻松掌握的学习路线与参考资料

Python asyncio是一个强大而易于使用的库&#xff0c;让Python程序员能够编写高效的异步IO应用程序。它为程序员提供了一种简单而优雅的方法来避免使用 Python GIL&#xff08;全局解释器锁&#xff09;&#xff0c;同时允许他们轻松地处理高并发的网络通信和并发任务执行。下面…

蓝桥杯数论总结:快速幂和矩阵快速幂

本文先是给出快速幂的原理&#xff0c;又由一道例题明确快速幂的Python代码模版&#xff1b;而后给出矩阵快速幂的原理&#xff08;介绍了矩阵相乘&#xff0c;对没学过线代者友好&#xff09;&#xff0c;和矩阵快速幂的模版。再给出快速幂和矩阵快速幂相关的题单。 目录 快…

Linux高级---k8s存储

文章目录 一、数据卷的概述二、关系图三、数据卷的类型1、emptydira、描述b、适用场景c、emptydir应用 2、hostpatha、描述b、适用场景c、hostpath应用 3、nfsa、描述b、适用场景c、nfs应用 4、PV和PVCa、描述b、存储卷和存储卷声明的关系c、存储卷声明的管理过程 5、PVa、资源…

10个可以快速用Python进行数据分析的小技巧

一些小提示和小技巧可能是非常有用的&#xff0c;特别是在编程领域。有时候使用一点点黑客技术&#xff0c;既可以节省时间&#xff0c;还可能挽救“生命”。 一个小小的快捷方式或附加组件有时真是天赐之物&#xff0c;并且可以成为真正的生产力助推器。所以&#xff0c;这里…

基于Spring Boot+Vue的课堂管理系统

介绍 基于Spring BootVue的课堂管理系统。前后端分离。包含教师授课管理、学生选退课、聊天室、签到、笔记管理模块等。 技术架构 spring BootMyBatisRedisWebSocketVueCLIAxiosElement UI 项目特点&#xff1a; - 后台使用MyBatis连接数据库&#xff0c;编写后台服务器的…

【教程】2步白嫖使用DeepL Pro会员版 [附插件]

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 【教程】5步白嫖使用Grammarly Premium高级版 [附脚本] 适用说明 Edge、Chrome等&#xff0c;使用了Chrome内核的浏览器应该都可以吧。 开始白嫖 1、下载并解压插件&#xff0c;下载链接&#xff1a;https://x…

第2章:数据结构【AcWing】

文章目录 单链表定义初始化头插在下标为pos位置后插入删除下标为pos后的结点遍历 双链表定义初始化在下标为pos后插入删除下标为pos的位置 栈和队列栈定义示例代码 队列定义示例代码循环队列定义示例代码 单调栈和单调队列单调栈朴素方法 O ( n 2 ) O(n^2) O(n2)优化 O ( n ) …

Web的基本漏洞--逻辑漏洞

目录 一、逻辑漏洞介绍 1.逻辑漏洞的原理 2.逻辑漏洞的分类 3.常见的逻辑漏洞 4.挖掘逻辑漏洞 一、逻辑漏洞介绍 1.逻辑漏洞的原理 逻辑漏洞是指由于程序逻辑不严或逻辑太复杂&#xff0c;导致一些逻辑分支不能够正常处理或处理错误&#xff0c;从而进行攻击。一般出现任…

英国皇家植物园采用机器学习预测植物抗疟性,将准确率从 0.46 提升至 0.67

内容一览&#xff1a;疟疾是严重危害人类生命健康的重大传染病&#xff0c;研究人员一直在致力于寻找新的植物源性抗疟疾化合物&#xff0c;以研发相关药物。近期英国皇家植物园利用机器学习 算法 有效预测了植物抗疟性&#xff0c;该研究成果目前已发表在《Frontiers in Plant…

路径规划算法:基于风驱动优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于风驱动优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于风驱动优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

游戏场景的转换——状态模式

状态模式 游戏比较复杂时&#xff0c;通常会设计成多个场景。 切换场景的好处 1、重复使用场景 跳转切换场景的代码有两种一种是旧版的方法 Application.LoadLevel(“SampleScene”);另一种是新版的方法 SceneManager.LoadScene(“SampleScene”); 例子1&#xff1a;通过场景…