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

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

lmwmm2年前 (2024-03-30)技术分享1609

这里用了两个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接口)进行显示” 的相关文章

抖音宣布全量开放帐号IP属地功能

抖音宣布全量开放帐号IP属地功能

       4月29日消息,稍早前,有用户发现,抖音也支持了IP属地功能,即作者、评论显示地理位置。今日晚间,“抖音安全中心”微信公众号宣布,抖音一直致力于维护真实有序的社区讨论氛围,确保平台传播内…

ChatGPT-4重磅发布,10秒做出一个网站,全面碾压上一代

ChatGPT-4重磅发布,10秒做出一个网站,全面碾压上一代

今日,#GPT4做一个网站只要十秒#的话题引发网友热议。据报道,当地时间周二(3月14日),人工智能研究公司OpenAI公布了其大型语言模型的最新版本——GPT-4。相比前一个版本,它有多强大?10秒钟做出一个网站一则有关GPT4发布会的视…

【讲座预告】火爆全网的ChatGPT应用实训,人人可学!点击报名!

【讲座预告】火爆全网的ChatGPT应用实训,人人可学!点击报名!

随着以自然语言处理为代表的人工智能的发展,OpenAI公司的最新成果ChatGPT近来“火出圈”。 TA不仅能和任何人“对答如流”,擅长写策划方案和调研报告,还能翻译文章、撰写邮件、创作脚本、编写代码,甚至能通过谷歌L3程序员面试和…

[iptv信源 资源分享] 上万直播源,7x24小时自动更新

[iptv信源 资源分享] 上万直播源,7x24小时自动更新

請根據您的需要來下載以下的頻道播放列表進行測試, 系統會每天自動更新一次.https://epg.pw/test_channel_page.html?lang=zh-hant下載地址        格…

进入PG新时代:CES电竞屏幕一举突破2K和480Hz刷新率的颠覆性创新

进入PG新时代:CES电竞屏幕一举突破2K和480Hz刷新率的颠覆性创新

即将开幕的美国CES消费PG电子展掀起一波电竞屏幕技术的风潮,LG和三星两大屏幕巨头预告了引人注目的最新一代产品。三星推出了新款Odyssey OLED系列电竞屏幕,其中27寸的G6以360Hz的刷新率和0.03ms的反应速度带来顺滑的画面…

下一代Switch的策略:迭代升级还是开启CQ9电子新时代?

下一代Switch的策略:迭代升级还是开启CQ9电子新时代?

业界预计任天堂下一代Switch将在2024年发布。知名游戏分析CQ9 Gaming猜测该主机不会有大的革新,而是更像是性能的增强,整体上与现有Switch相似。他认为,任天堂依然坚持掌机游戏模式,其中最主要的原因是宝可梦系列对掌机市场的重…