Arduino UNO r3+LCD1602+DHT11

news/2024/11/17 0:51:53/

为了节约板子的IO口这里的显示使用的四线驱动显示接法,显示使用的LiquidCrystal库,库的安装可以直接从

IDE 中的项目选项下的 include Library中选择manage library 中搜索LCD,安装必要的库文件。也可以在github中下载zip包来安装,URL:http://https://github.com/adafruit/Adafruit_LiquidCrystal

代码:

#include <LiquidCrystal.h>// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);int temp;//温度
int humi;//湿度
int tol;//校对码
int j;
unsigned int loopCnt;
int chr[40] = {0};//创建数字数组,用来存放40个bit
unsigned long time;
#define pin 8void setup() {// set up the LCD's number of columns and rows:lcd.begin(16, 2);// Print a message to the LCD.//lcd.print("hello, world!");Serial.begin(9600);}void loop() {bgn:delay(2000);
//设置2号接口模式为:输出
//输出低电平20ms(>18ms)
//输出高电平40μspinMode(pin,OUTPUT);digitalWrite(pin,LOW);delay(20);digitalWrite(pin,HIGH);delayMicroseconds(40);digitalWrite(pin,LOW);
//设置2号接口模式:输入pinMode(pin,INPUT);//高电平响应信号loopCnt=10000;while(digitalRead(pin) != HIGH){if(loopCnt-- == 0){
//如果长时间不返回高电平,输出个提示,重头开始。Serial.println("HIGH");goto bgn;}}//低电平响应信号loopCnt=30000;while(digitalRead(pin) != LOW){if(loopCnt-- == 0){
//如果长时间不返回低电平,输出个提示,重头开始。Serial.println("LOW");goto bgn;}}
//开始读取bit1-40的数值  for(int i=0;i<40;i++){while(digitalRead(pin) == LOW){}
//当出现高电平时,记下时间“time”time = micros();while(digitalRead(pin) == HIGH){}
//当出现低电平,记下时间,再减去刚才储存的time
//得出的值若大于50μs,则为‘1’,否则为‘0’
//并储存到数组里去if (micros() - time >50){chr[i]=1;}else{chr[i]=0;}}//湿度,8位的bit,转换为数值
humi=chr[0]*128+chr[1]*64+chr[2]*32+chr[3]*16+chr[4]*8+chr[5]*4+chr[6]*2+chr[7];//温度,8位的bit,转换为数值
temp=chr[16]*128+chr[17]*64+chr[18]*32+chr[19]*16+chr[20]*8+chr[21]*4+chr[22]*2+chr[23];//校对码,8位的bit,转换为数值
tol=chr[32]*128+chr[33]*64+chr[34]*32+chr[35]*16+chr[36]*8+chr[37]*4+chr[38]*2+chr[39];
//输出:温度、湿度、校对码if(tol >= humi + temp){Serial.print("temp:");Serial.println(temp);Serial.print("humi:");Serial.println(humi);Serial.print("tol:");Serial.println(tol); 
}else{Serial.println("error!");//校对码,我这里没用上-//理论上,湿度+温度=校对码//如果数值不相等,说明读取的数据有错。
}lcd.clear();lcd.setCursor(0,0);lcd.print("Tem(");lcd.print((char)223);//显示o符号lcd.print("C):");lcd.setCursor(8,0);   lcd.print(temp);lcd.setCursor(0,1);lcd.print("Hum(");lcd.print((char)37);//显示%符号lcd.print("):");lcd.setCursor(7,1);lcd.print(humi);
}


http://www.ppmy.cn/news/182349.html

相关文章

R13shengji

附件为R13版本升级初步文档&#xff0c;正式R13 Release Note还未发布&#xff0c;下面是一些注意事项 1、先替换lte_setting文件&#xff0c;再升级R13 2、先升级机框&#xff1b; 3、替换lte_setting; 4、用MML升级R13&#xff1b; 5、替换L1的6个文件&#xf…

Compiling and linking error when using NDK r10 to build cocos2d-x v3.2

用ndk r10编译cocos2dx 3.2的时候会报出如下错误信息&#xff1a; /Users/minggo/SourceCode/cocos2d-x/build/../cocos/./3d/CCBundleReader.cpp:94:23: error: return type of out-of-line definition of cocos2d::BundleReader::telldiffers from that in the declaration s…

EN45545-2 R10地面材料防火测试

高铁、动车组、地铁等轨道车辆用水平朝上表面材料、地板等地面材料根据EN45545-2 R10标准进行测试及评估。 EN45545-2-2013 Railway applications - Fire protection of railway vehicles-Part 2: Requirement for fire behavior of materials and components EN45545-2-2013铁…

使用h5Stream实现监控视频实时显示

准备工作&#xff1a; 下载安装 相关文档手册 下载h5s-r10.6.0229.20-win64-release.zip 下载VC_redist.x64.2017.exe 开始 安装VC_redist.x64.2017.exe 安装完成之后需要进行重启 解压h5s-r10.6.0229.20-win64-release.zip到任意目录&#xff0c;要注意&#xff0c;目录…

android-ndk-r10交叉编译libev(ubuntu16.04)

android-ndk-r10交叉编译libev(ubuntu16.04) 版本说明 版本作者日期备注0.1loon2020.8.18初稿 目录 文章目录 android-ndk-r10交叉编译libev(ubuntu16.04)版本说明目录一、准备1、ndk下载2、libev下载 二、ndk安装1、解压安装2、配置环境变量3、验证环境变量 三、libev交叉编…

假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,…

一个经典的操作系统题目&#xff1a; 数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块&#xff0c;每块存放1个逻辑记录。逻辑记录R1&#xff0c;R2&#xff0c;…&#xff0c;R10存放在同一个磁道上&#xff0c;记录的安排顺序如下表所示&…

服务器磁盘raid0,raid1,raid10,raid5,raid50,raid6,raid60 分析与案例

1&#xff0c;raid0的特性&#xff1a;采用剥离&#xff0c;数据将在几个磁盘上进行分割。数据被分成很多数据块&#xff0c;每一数据块会被写入不同的磁盘。从而&#xff0c;每一磁盘的工作负荷都得到了降低&#xff0c;这有助于加速数据传输。RAID-0可让磁盘更好地响应&#…

【Android】android ndk r10 环境配置

android sdk 更新到 r23 时&#xff0c;eclipse 自带 adt版&#xff0c;里面并没有设置ndk的路径&#xff0c;从而导致了在ndk配置方面的难度。本文主要适合&#xff1a; ① 使用 android sdk r23 20140702 的朋友 ② 使用 android ndk r10 的朋友 ③ 想知道andorid adt自带ecl…