Arduino-1602-LiquidCrystal库
前言:LiquidCrystal是一个1602的IIC库,使用IIC协议可以极大节约用线数量,十分方便。当然,前提是1602要使用LCD1602 I2C模块。
一、库函数快速查询
- LiquidCrystal() //构造函数
- begin() //指定显示屏尺寸
- clear() //清屏并将光标置于左上角
- home() //将光标置于左上角(不清屏)
- setCursor() //将光标置于指定位置
- write() //(在光标处)显示一个字符
- print() //显示字符串
- cursor() //显示光标(就是一个下划线)
- noCursor() //不显示光标
- blink() //光标闪烁(和8,9一起使用时不保证效果)
- noBlink() //光标不闪烁
- noDisplay() //关闭显示,但不会丢失内容
- display() //(使用noDisplay后)恢复显示
- scrollDisplayLeft() //将显示的内容向左滚动一格
- scrollDisplayRight() //将显示的内容向右滚动一格
- autoscroll() //打开自动滚动
- noAutoscroll() //关闭自动滚动
- leftToRight() //从左向右显示内容(默认)
- rightToLeft() //从右向左显示内容
- createChar() //创造字符
二、库函数详细释义
2.1 LiquidCrystal()
内容:
构造函数,创建一个LiquidCrystal的实例(LiquidCrystal是一个类)。可使用4线或8线方式作为数据线(请注意,还需要指令线).若采用四线方式,将d0-d3悬空不连接.RW引脚可接地而不用接在Arduino的某个引脚上;如果这样接,省略在函数中的rw参数.
语法:
LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)
参数设置:
rs: rs连接的Arduino的引脚编号
rw: rw连接的Arduino的引脚编号
enable:enable连接的Arduino的引脚编号
d0, d1, d2, d3, d4, d5, d6, d7: 连接的Arduino的引脚编号
例子:
#include <LiquidCrystal.h>
LiquidCrystal lcd(, , , , , , );
void setup()
{
lcd.print("hello, world!");
}
void loop() {}
2.2 begin ()
内容:
指定显示屏的尺寸(宽度和高度)。
语句:
lcd.begin(cols, rows)
参数设置:
lcd: 液晶类型的名称变量
cols: 显示器可以显示的列数(1602是16列)
rows: 显示器可以显示的行数(1602是2行)
2.3 clear ()
简介:
清除LCD屏幕上内容,并将光标置于左上角。
语法:
lcd.clear()
参数:
lcd:LiquidCrystal类的对象
2.4 home()
内容:
将光标定位在屏幕左上角. 就是说,接下来的字符从屏幕左上角开始显示.如果同时要清除屏幕上的内容,请使用clear()函数代替.
语法:
lcd.home()
参数设置:
lcd: LiquidCrystal类的对象
2.5 setCursor()
简介:
将光标定位在特定的位置。
语法:
lcd.setCursor(col, row)
参数:
lcd:LiquidCrystal类的对象
col: 你要显示光标的列 (从0开始计数)
row: 你要显示光标的行 (从0开始计数)
2.6 write()
简介:
向LCD写一个字符。
语法:
lcd.write(data)
参数:
lcd: LiquidCrystal类的对象
data: 你要显示的字符(仅限英文、数字和自定义字符)。
返回值:
byte //write() 将返回写入的字节数,虽然读这个数字是可选
示例:
#include <LiquidCrystal.h>
LiquidCrystal lcd(, , , , , , );
void setup()
{
Serial.begin();
}
void loop()
{
if (Serial.available())
{
lcd.write(Serial.read());
}
}
2.7 print()
内容:
将文本显示在LCD上.
语法:
lcd.print(data)
lcd.print(data, BASE)
参数:
lcd: 液晶类型的名称变量
data:要显示的数据,可以是char, byte, int, long或者string类型的
BASE (optional): 数制(可选),BIN,DEC,OCT,HEX分别将数字以二进制,十进制,八进制,十六进制方式显示出来.
返回值:
byte //这个返回值通常是用不到的
示例:
#include <LiquidCrystal.h>
LiquidCrystal lcd(, , , , , , );
void setup()
{
lcd.print("hello, world!");
}
void loop() {}
2.8 cursor()
内容:
显示光标(光标所在的位置, 就是下一个字符将会被显示的位置)。
语法:
lcd.cursor()
参数设置:
lcd: 液晶类型的名称变量
2.9 noCursor()
内容:
隐藏光标。
语法:
lcd.noCursor()
参数:
lcd: 液晶类型的名称变量
2.10 blink()
内容:
显示闪烁的光标。如果和cursor()一起使用,最终结果将取决于您使用的LCD屏幕.
语法:
lcd.blink()
参数设置:
lcd: 液晶类型的名称变量
2.11 noBlink()
内容:
关闭 光标闪烁功能.
语句:
lcd.noBlink()
参数设置:
lcd: 液晶类型的名称变量
2.12 noDisplay()
内容:
关闭液晶显示,但原先显示的内容不会丢失. 可使用display()恢复显示.
语法:
lcd.noDisplay()
参数:
lcd: 液晶类型的名称变量
2.13 display()
简介:
调用noDisplay()隐藏LCD上显示内容后,调用本函数恢复显示.
语法:
lcd.display()
参数:
lcd: 液晶类型的名称变量
2.14 scrollDisplayLeft()
简介:
使屏幕上内容(光标及文字)向左滚动一个字符。
语法:
lcd.scrollDisplayLeft()
参数:
lcd: 一个LiquidCrystal类的对象
2.15 scrollDisplayRight()
简介:
使屏幕上内容(光标及文字)向右滚动一个字符。
语法:
lcd.scrollDisplayRight()
参数:
lcd: 一个LiquidCrystal类的对象
2.16 autoscroll()
简介:
打开液晶显示屏的自动滚动,将会使得当一个字符输出到LCD时,令先前的文本移动一个位置.如果当前写入方向为由左到右(默认方向),文本向左滚动.反之,文本向右滚动.它的功能可以理解为,当输出单个字符时,会使得字符总是输出在LCD上的同一个位置.
语法:
lcd.autoscroll()
参数:
lcd: a variable of type LiquidCrystal
2.17 noAutoscroll()
简介:
关闭自动滚动功能。(后输入的字符可能无法显示)
语法:
lcd.noAutoscroll()
参数:
LCD:LiquidCrystal类的对象
2.18 leftToRight()
内容:
默认的方向,将文本从左到右写入屏幕.这意味着,后续字符的显示将是从左向右的,但是这不会影响先前已经显示的字符.
语法:
lcd.leftToRight()
参数设置:
lcd: a variable of type LiquidCrystal
2.19 rightToLeft()
简介:
设置文本写入LCD的方向为从右向左(默认是从左向右)。这意味着,后续字符将会由右至左写入,但不影响先前的文本的显示。
语法:
lcd.rightToLeft()
参数:
lcd: 一个LiquidCrystal类的对象
2.20 createChar()
内容:
创建用户自定义的字符.共可创建8个用户自定义字符,编号从0到7.字符外观由一个8字节数组定义,每行占用一个字节.最低的5个有效位决定像素点所在的行.若要在屏幕显示自定义字符,请使用write()函数.(参数为字符的编号0-7)
语法:
lcd.createChar(num, data)
参数设置:
lcd: a variable of type LiquidCrystal
num: 所创建字符的编号(0-7)
data: 字符的像素数据
例子:
#include <LiquidCrystal.h>
LiquidCrystal lcd(, , , , , );
] = { //1表示亮,0表示不亮,此例显示一个笑脸
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
void setup() {
; //x可以为0~7的任何数字
lcd.createChar(x , smiley); //将x号字符设置为smiley数组表示的样子
lcd.begin(, );
lcd.write(x);
}
void loop() {}
参考自:https://www.cnblogs.com/Dumblidor/p/5394302.html
和https://wenku.baidu.com/view/f0551a3deefdc8d376ee327d.html
-END-
Arduino-1602-LiquidCrystal库的更多相关文章
- Arduino下LCD1602综合探究(下)——如何减少1602的连线,LiquidCrystal库,LiquidCrystal库中bug的解决方法
一.前言: 上文中,笔者系统的阐述了1602的两种驱动方式,并简单的提到了Arduino的LiquidCrystal库.本文紧接上文,对以下两个问题进行更加深入的探讨:如何能够使1602对Arduin ...
- arduino中SCoop库的简单应用案例
转载:https://www.csdn.net/gather_27/MtTaggzsMDExMS1ibG9n.html arduino中SCoop库的简单应用案例首先这篇文章来在视频https://v ...
- Arduino 1602液晶屏实验和程序
在Arduino IDE中, 项目->加载库->管理库中搜索LiquidCrystal,然后安装即可 1.接线图 2.引脚图 3.最简单程序 #include <LiquidCrys ...
- arduino红外遥控库IRremote的IRsend类sendRaw函数溢出问题及其解决方法
最近在调试红外遥控格力空调,在论坛中学到了不少东西.参考: (1)<解决问题系列(4)——红外编码分析利器使用> (2)<315Mhz模块传输替代315Mhz遥控器> 调试环境 ...
- 关于Arduino 步进电机Stepper库的一些想法
官方提供了一些库,使Arduino入门起来更加快速,我们连原理都不用懂,就能通过函数控制终端.但是,这样也带来了很多的缺陷,比如,库函数的功能有限,有些无法实现.然后还有库函数因为要考虑其他的情况,你 ...
- 手把手教你看懂并理解Arduino PID控制库——引子
介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...
- Arduino学习——u8glib库资料整理
第一部分,u8glib标准语法格式: 本文使用的是DFRobot出品的LCD12864 Shield V1.0 端口占用情况: SPI Com: SCK = 13, MOSI = 11, CS = 1 ...
- Arduino利用TimerOne库产生固定频率和占空比的方波
TimerOne地址: https://code.google.com/archive/p/arduino-timerone/downloads ex: #include "TimerOne ...
- Arduino 使用舵机库时 其它引脚输出怪异 解决方案
使用Servo.h时,不管你在初始化时用的是9还是10脚,都不要把这两个脚作为舵机以外的用途! 例: servo.attach(9); digitalWrite(10,1);//错,不能把第10脚用作 ...
- Arduino Micro USB库
USBCore.cpp #define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_co ...
随机推荐
- vim之快速跳转
光棍节啦, 淘东西的闲暇上来发vim旅途第一篇日志. 为什么呢? 因为今天是我媳妇的生日, 我用这种只有我知道的方式来纪念一下. ^_^, 宝宝生日快乐! 开篇先说明日志布局, vim学习记录连载中所 ...
- Assembly之instruction之Indirect Autoincrement Mode
Assembler Code Content of ROMMOV @R10+,0(R11) MOV @R10+,0(R11) Length: One or two words Operation: ...
- Android读写文件
1.从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写) String res = ""; try{ InputStream in = getResour ...
- 读书笔记「Python编程:从入门到实践」_9.类
9.1 创建和使用类 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想. OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 把 ...
- Labview学习笔记(一)
一.概述 Labview是一种工业标准图形化编程工具,主要用于开发测试.测量与控制系统,拥有一个可以完成任何编程任务的庞大函数库,包括数据采集.GPIB.串口控制.数据分析.数据显示及数据存储等. L ...
- pytorch基础(4)-----搭建模型网络的两种方法
方法一:采用torch.nn.Module模块 import torch import torch.nn.functional as F #法1 class Net(torch.nn.Module): ...
- win10家庭版转专业版并激活
之前重装win10的时候没注意,不小心装成家庭版. 本以为家庭版也没什么,后来发现这对程序员来说造成致命打击. 在系统信息页面底部点击“更改密匙”,输入win10升级产品密匙:VK7JG-NPHTM- ...
- salt 根据ip修改主机名
首先定义pillar [root@web1 pillar]# cat hostname.sls ip_hostname: 10.1.1.1: web1 10.1.1.2: web2 10.1.1.3: ...
- 数位dp题集
题集见大佬博客 不要62 入门题,检验刚才自己有没有看懂 注意一些细节. 的确挺套路的 #include<bits/stdc++.h> #define REP(i, a, b) for(r ...
- 洛谷 P3227 BZOJ 3144 [HNOI2013]切糕
题目描述 经过千辛万苦小 A 得到了一块切糕,切糕的形状是长方体,小 A 打算拦腰将切糕切成两半分给小 B.出于美观考虑,小 A 希望切面能尽量光滑且和谐.于是她找到你,希望你能帮她找出最好的切割方案 ...