驴友花雕 发表于 2022-5-10 14:43:23

2、打开网页https://github.com/,搜索LiquidCrystal_I2C

驴友花雕 发表于 2022-5-10 14:45:10

实验接线示意图



驴友花雕 发表于 2022-5-10 14:46:49

IIC LCD1602A液晶屏显示模块的几个实验1、程序一:I2C 扫描仪(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序一:I2C 扫描仪
这里查询结果是“0x27”(这个地址不对的话,实测无法烧录程序)
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCLIIC 时钟线
*/

#include <Wire.h>

void setup() {
Wire.begin();//等待串口监视器
Serial.begin(9600);
Serial.println("\n I2C 扫描仪");
}

void loop() {
byte error, address;
int nDevices;
Serial.println("eagler8 正在扫描......");
nDevices = 0;
for (address = 1; address < 127; address++ ) {
    // i2c_scanner 使用的返回值
    // Write.endTransmission 看是否
    // 设备确实确认了地址。
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("I2C 设备在地址 0x");
      if (address < 16)
      Serial.print("0");
      Serial.print(address, HEX);
      Serial.println(" !");
      nDevices++;
    } else if (error == 4) {
      Serial.print("地址 0x 出现未知错误");
      if (address < 16)
      Serial.print("0");
      Serial.println(address, HEX);
    }
}
if (nDevices == 0)
    Serial.println("没有找到 I2C 设备\n");
else
    Serial.println("完成\n");
delay(5000);
}

驴友花雕 发表于 2022-5-10 14:48:27

(2)实验串口返回情况

驴友花雕 发表于 2022-5-10 14:50:10

程序二:显示字符“Welcome to eagler8”(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序二:显示字符“Welcome to eagler8”
实验接线
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCLIIC 时钟线
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>//导入1602驱动库
// 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示
LiquidCrystal_I2C lcd(0x27, 16, 2);

void MyPrintLCD(String MyString){
for (int i = 0; i < MyString.length(); i++)
    lcd.write(MyString.charAt(i));//写入字符串字符
}

void setup() {
lcd.init();//初始化液晶屏
lcd.backlight();
MyPrintLCD("Welcome to ");
lcd.setCursor(0, 1);//写入定位
MyPrintLCD("         eagler8");
}

void loop() {
}

驴友花雕 发表于 2022-5-10 14:51:17

(2)实验场景图

驴友花雕 发表于 2022-5-10 14:53:42

程序三:显示通过串行端口(例如从串行监视器)发送的文本(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序三:显示通过串行端口(例如从串行监视器)发送的文本
实验接线
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCLIIC 时钟线
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>//导入1602驱动
// 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
lcd.init();               //初始化液晶屏
lcd.backlight();            //打开背光
Serial.begin(9600);         //初始化串口
}

void loop(){
// 当字符通过串口到达时...
if (Serial.available()) {
    // 等待整个消息到达
    delay(100);
    //清屏
    //lcd.clear();
    // 读取所有可用字符
    while (Serial.available() > 0) {
      // 将每个字符显示到 LCD
      lcd.write(Serial.read());
    }
}
}

驴友花雕 发表于 2022-5-10 14:55:15

(2)实验串口发送文本情况

驴友花雕 发表于 2022-5-10 14:56:25

(3)实验场景图

驴友花雕 发表于 2022-5-10 14:58:08

程序四:显示"Hello, world!"(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序四:显示"Hello, world!"
实验接线
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCLIIC 时钟线
*/

#include <Wire.h>

#include <LiquidCrystal_I2C.h>//导入1602驱动

// 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
lcd.init();               //初始化液晶屏
lcd.backlight();            //打开背光

lcd.setCursor(0, 0);
lcd.print("Hello, world!");
lcd.setCursor(0, 1);
lcd.print("Arduino IIC 1602");
}

void loop(){
}

驴友花雕 发表于 2022-5-10 14:59:32

(2)实验场景图

驴友花雕 发表于 2022-5-10 15:01:15

5、程序五:显示所有键码(1)Arduino参考开源代码 /*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序五:显示所有键码
实验接线
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCLIIC 时钟线
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>//导入1602驱动

#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)write(args);
#else
#define printByte(args)print(args,BYTE);
#endif

uint8_t bell= {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4};
uint8_t note= {0x2, 0x3, 0x2, 0xe, 0x1e, 0xc, 0x0};
uint8_t clock = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0};
uint8_t heart = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0};
uint8_t duck= {0x0, 0xc, 0x1d, 0xf, 0xf, 0x6, 0x0};
uint8_t check = {0x0, 0x1, 0x3, 0x16, 0x1c, 0x8, 0x0};
uint8_t cross = {0x0, 0x1b, 0xe, 0x4, 0xe, 0x1b, 0x0};
uint8_t retarrow = {0x1, 0x1, 0x5, 0x9, 0x1f, 0x8, 0x4};

// 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
lcd.init();               //初始化液晶屏
lcd.backlight();            //打开背光

lcd.createChar(0, bell);
lcd.createChar(1, note);
lcd.createChar(2, clock);
lcd.createChar(3, heart);
lcd.createChar(4, duck);
lcd.createChar(5, check);
lcd.createChar(6, cross);
lcd.createChar(7, retarrow);
lcd.home();

lcd.print("Hello world...");
lcd.setCursor(0, 1);
lcd.print(" i ");
lcd.printByte(3);
lcd.print(" arduinos!");
delay(5000);
displayKeyCodes();
}

// 显示所有键码
void displayKeyCodes(void) {
uint8_t i = 0;
while (1) {
    lcd.clear();
    lcd.print("Codes 0x"); lcd.print(i, HEX);
    lcd.print("-0x"); lcd.print(i+16, HEX);
    lcd.setCursor(0, 1);
    for (int j=0; j<16; j++) {
      lcd.printByte(i+j);
    }
    i+=16;
    delay(4000);
}
}

void loop(){
}


驴友花雕 发表于 2022-5-10 15:02:40

(2)实验场景图


驴友花雕 发表于 2022-5-10 15:03:58




驴友花雕 发表于 2022-5-10 15:05:11




驴友花雕 发表于 2022-5-10 15:07:08

5、程序六:闪烁的小星星(光标)(1)Arduino参考开源代码 /*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序六:闪烁的小星星(光标)
实验接线
Arduino------LCD1602
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCLIIC 时钟线
*/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>//导入1602驱动

// 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
lcd.init();               //初始化液晶屏
lcd.backlight();            //打开背光
}

void loop() {
bool blinking = true;//判断布尔闪烁
lcd.cursor();

while (1) {
    if (blinking) {
      lcd.clear();
      lcd.print("No cursor blink");//光标不闪烁
      lcd.noBlink();
      blinking = false;
    } else {      
      lcd.clear();
      lcd.print("Cursor blink");//光标闪烁
      lcd.blink();
      blinking = true;
    }
    delay(4000);
}
}

驴友花雕 发表于 2022-5-10 15:08:24

(2)实验场景图


驴友花雕 发表于 2022-5-10 15:09:53

5、程序七:最简显示字符A和B(1)实验开源仿真编程(Linkboy V4.63)

驴友花雕 发表于 2022-5-10 15:11:16

(2)实验场景图

驴友花雕 发表于 2022-5-10 15:12:34

程序八:显示六个随机数字(1)实验开源仿真编程(Linkboy V4.63)

驴友花雕 发表于 2022-5-10 15:14:05

(2)实验场景图

页: 1 [2] 3
查看完整版本: 【Arduino】168种传感器模块系列实验(88)--- LCD1602液晶屏