当前位置:首页 > 技术分享 > 正文内容

esp8266、Arduino用LCD1602(iic接口)进行显示

lmwmm3年前 (2024-03-30)技术分享2023

这里用了两个esp8266设备,分别是NodeMCU和Wemos D1 mini两个模块,Arduino设备是Arduino UNO。设备如下图示。

3007372345.jpg


三个设备的引脚说明如图,后面连接屏幕要用到。

显示设备Lcd1602,能显示两行,每行16个字,后面焊接了IIC接口转接模块(PCA8574),如图。


2631231162.jpg

IIC接口有GND、VCC、SDA、SCL三个接口,分别根据上面的引脚图,找到想要的引脚连接(NodeMcu的SCL与SDA对应引脚D1 D2),由于这个屏幕是5v工作电压,VCC要接5V,NodeMCU没有标识5V引脚,要接Vin。
下面是编写代码,都用Arduino IDE进行,要安装LiquidCrystal I2C库,代码如下。

#include <Wire.h>#include <LiquidCrystal_I2C.h>// I2C地址, 一般为0x3F, 0x20或0x27LiquidCrystal_I2C lcd(0x27, 16, 2);int i;char str[16];void setup(){
  lcd.init();//初始化显示屏
  lcd.backlight(); // 打开背光
  i = 0;  strcpy (str,"#");
}void loop(){
  lcd.setCursor(0, 0);//设置起始坐标
  lcd.print("Hello World!");
  lcd.setCursor(0, 1);  if(i<16){
    i++;
    lcd.print(str);    strcat(str,"#");
  }else{    strcpy(str,"#");
    i=0;
    lcd.clear();//清屏
  }
  delay(500);
}

I2C地址还可以通过写入arduino一段代码,通过串口监视器查询到。

// I2C Scanner// Written by Nick Gammon// Date: 20th April 2011#include <Wire.h>void setup() { 
    Serial.begin (115200); // Leonardo: wait for serial port to connect 
    while (!Serial) { } 
    Serial.println (); 
    Serial.println ("I2C scanner. Scanning ..."); 
    byte count = 0; 
    Wire.begin(); 
    for (byte i = 8; i < 120; i++) { 
        Wire.beginTransmission (i); 
        if (Wire.endTransmission () == 0) { 
          Serial.print ("Found address: "); 
          Serial.print (i, DEC); 
          Serial.print (" (0x"); 
          Serial.print (i, HEX); 
          Serial.println (")"); 
          count++; 
          delay (1); // maybe unneeded? 
        } // end of good response 
    } // end of for loop 
    Serial.println ("Done."); 
    Serial.print ("Found "); 
    Serial.print (count, DEC); 
    Serial.println (" device(s).");
} // end of setupvoid loop() {}

效果如图。



LCD1602和超声波传感器,进行整合后代码如下:

#include <Wire.h>  
#include <LiquidCrystal_I2C.h>  
 
// 定义I2C地址和LCD尺寸  
// LCD1602 D1 D2针脚  
#define I2C_ADDR 0x27 // 根据你的I2C模块设置正确的地址  
#define LCD_COLS 16  
#define LCD_ROWS 2  
 
// 初始化LCD  
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLS, LCD_ROWS);  
 
// 定义超声波传感器的引脚  
const int trigPin = 2;  //D4
const int echoPin = 0;  //D3
 
void setup() {  
  Wire.begin(); // 初始化I2C总线  
  lcd.init();//初始化显示屏
  lcd.backlight(); // 打开背光
  lcd.setCursor(0, 0); // 设置LCD光标位置  
  lcd.print("Distance: "); // 在LCD上显示文本  
  pinMode(trigPin, OUTPUT);  
  pinMode(echoPin, INPUT);  
}  
 
void loop() {  
  long duration, distance;  
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2);  
  digitalWrite(trigPin, HIGH);  
  delayMicroseconds(10);  
  digitalWrite(trigPin, LOW);  
  duration = pulseIn(echoPin, HIGH);  
  distance = duration * 0.034 / 2; // 将时间转换为距离(厘米)  
 
  // 检查距离是否在有效范围内  
  if (distance >= 0 && distance <= 400) {  
    lcd.clear(); // 清除LCD屏幕  
    lcd.setCursor(0, 0); // 设置LCD光标位置  
    lcd.print("Distance: "); // 显示文本  
    lcd.setCursor(9, 0); // 设置光标位置以显示距离值(留出空间给文本)  
    lcd.print(distance, DEC); // 显示距离值  
    lcd.print(" cm"); // 显示单位  
  }  
  delay(1000); // 等待一秒钟再次读取  
}


扫描二维码推送至手机访问。

版权声明:本文由点度点度金讯时代-BLOG发布,如需转载请注明出处。

本文链接:https://lmwmm.com/post/2575.html

分享给朋友:

“esp8266、Arduino用LCD1602(iic接口)进行显示” 的相关文章

Google传喜讯:请在 AdSense 中验证您的付款地址

Google传喜讯:请在 AdSense 中验证您的付款地址

我们于 三月 09 2022给您在 AdSense 中向我们提供的付款地址寄去了一个 PIN 码,即个人识别码。您在收到 PIN 码邮件后,请点击本电子邮件中的验证您的地址,然后在 AdSense 首页上的验证卡片中输入您的 PIN 码。…

ChatGPT注册教程攻略:解决手机无法接收验证码问题(亲测有效)

ChatGPT注册教程攻略:解决手机无法接收验证码问题(亲测有效)

今天给大家介绍一款最近非常火爆的AI智能聊天工具:ChatGPT。它的功能:文能写文章,武能改BUG,马斯克对它的评价是“Scary Good!”。不过国内的很多小伙伴在注册这个工具的时候可能会遇到这样或那样的问题导致无法获的ChatGPT…

网易有道吃了ChatGPT生态的第一个螃蟹

网易有道吃了ChatGPT生态的第一个螃蟹

ChatGPT正在飞速进化,吃瓜都跟不上速度。3月14日,OpenAI推出GPT-4,在各种专业和学术基准上达到“人类水平”,再次惊艳行业。3月16日,百度宣布正式内测“中国版”ChatGPT——文心一言。紧接着,微软也最新宣布,Micro…

用ChatGPT写假新闻!深圳一自媒体公司法人代表被抓

用ChatGPT写假新闻!深圳一自媒体公司法人代表被抓

ChatGPT问世以来,引发了不小的争议。最让人担心的事发生了——有人用它制作假新闻!此前,一篇题为《今晨甘肃一火车撞上修路工人致9人死亡》的“新闻”吸引了甘肃省平凉市警方的注意,并引发网友关注。经判定,这是一篇假新闻,警方进一步侦查发现,…

运维:Windows11操作系统安装VMware16.1.1图文教程

运维:Windows11操作系统安装VMware16.1.1图文教程

一、VMware 16.1.1 介绍VMware 16.1.1 是一款功能非常强大虚拟化软件,它允许用户在一台计算机上创建和运行多个虚拟机(Virtual Machine)相当于拥有多台服务器。这些虚拟机可以模拟独立的操作系统和硬件环境,使…

Windows 12发布时间曝光!

Windows 12发布时间曝光!

[摘要]多方消息显示,微软正在准备发布 "突破性 "的以人工智能为中心的新一代Windows版本,内部代号 "Hudson Valley "(哈德逊河谷)。 快科技12月10日消息,多方消息显示,微…