当前位置: 首页 > ds >正文

Arduino+LCD1602,并口版 LCD1602和IIC版LCD1602

采用4 位模式(只用 D4~D7),D0-D3不需要连接

接线方式参考:

V0是对比度控制引脚,接在GND时屏幕最亮。在此我们接在了一个PWM引脚用于控制对比度。

所需库

  • LiquidCrystal

  • DHT sensor library(安装 DHT 库)

  • Adafruit Unified Sensor(依赖库)

完整代码:实现功能,温湿度显示,火焰检测,CO2数值检测,并在LCD上显示

#include <LiquidCrystal.h>
#include <DHT.h>#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);// LCD1602:RS, E, D4, D5, D6, D7
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);#define CONTRAST_PIN 9    // PWM 控制 LCD VO
#define CO2_PIN A0        // CO2 模拟值
#define FLAME_PIN 10      // 火焰检测
#define BUZZER_PIN 11     // 蜂鸣器
#define LED_PIN 12        // 报警灯void setup() {pinMode(CONTRAST_PIN, OUTPUT);analogWrite(CONTRAST_PIN, 50); // 设置 LCD 对比度(越小越亮)pinMode(BUZZER_PIN, OUTPUT);pinMode(LED_PIN, OUTPUT);pinMode(FLAME_PIN, INPUT);Serial.begin(9600);dht.begin();lcd.begin(16, 2);lcd.print("System Starting...");delay(1500);lcd.clear();
}void loop() {float temp = dht.readTemperature();float humi = dht.readHumidity();int co2 = analogRead(CO2_PIN);bool fireDetected = (digitalRead(FLAME_PIN) == LOW); // LOW 为有火// 报警控制digitalWrite(BUZZER_PIN, fireDetected);digitalWrite(LED_PIN, fireDetected);// 串口输出调试信息Serial.print("T:");Serial.print(temp);Serial.print("C H:");Serial.print(humi);Serial.print("% CO2:");Serial.print(co2);Serial.print(" Fire:");Serial.println(fireDetected ? "YES" : "NO");// 显示在 LCDlcd.setCursor(0, 0);lcd.print("T:");lcd.print((int)temp);lcd.print(" H:");lcd.print((int)humi);lcd.print("%     ");lcd.setCursor(0, 1);lcd.print("C:");lcd.print(co2);lcd.print(fireDetected ? " FIRE!" : " SAFE ");delay(1000);
}

显示效果如下:

http://www.xdnf.cn/news/9207.html

相关文章:

  • w~自动驾驶~合集2~激光毫米波雷达
  • 深入解构 Chromium 升级流程与常见问题解决方案
  • 从实验室到工业的“加速器”:单原子催化技术的突破与应用
  • 兰亭妙微 | 图标设计公司 | UI设计案例复盘
  • 机器学习中的 K-均值聚类算法及其优缺点
  • 快速上手SHELL脚本基础及变量与运算
  • 一文带你彻底理清C 语言核心知识 与 面试高频考点:从栈溢出到指针 全面解析 附带笔者手写2.4k行代码加注释
  • UE C++学习笔记之按键绑定
  • 使用Dockerfile创建镜像
  • AI时代新词-人工智能生成内容(AIGC)
  • 不用框架也能做出 Apple 风的网页动画!
  • 295.数据流的中位数
  • 摩尔线程 MUSA 软件开发集成套件
  • 使用 qiankun 实现 Vue3 与 Avalon 混合应用集成实践
  • 一些git的常见操作记录
  • C50-指针数组
  • [灵龙AI API] AI生成视频API:文生视频 – 第2篇
  • 嵌入式开发新范式:NTP时间同步实验与高精度仿真平台实践
  • OpenGAN:基于开放数据生成的开放集识别
  • 一周学会Pandas2之Python数据处理与分析-Pandas2数据合并与对比-df.combine():元素级合并
  • 统一人体姿态估计与分割的新方法:KDC
  • C# Windows Forms应用程序-003
  • day 37
  • IP协议解析
  • 使用json传递信息时接收不到的问题
  • python做题日记(9)
  • 【AI News | 20250526】每日AI进展
  • AI时代新词-私有数据与AI结合的技术:隐私保护与数据利用的平衡
  • pg库分表操作步骤- PostgreSQL 分区表
  • 车载通信网络 --- 传统车载网络及其发展