52将从DHT11上获取到的数据,显示到数码管上的代码
时间: 2024-02-12 15:08:22 浏览: 119
dht11.zip_DHT11_DHT11数码管
以下是使用Arduino平台,将DHT11传感器获取到的温湿度数据显示到数码管上的代码:
```c++
#include "DHT.h"
#include <TM1637Display.h>
#define DHTPIN 2 // DHT11传感器数据引脚
#define CLK 3 // 数码管时钟引脚
#define DIO 4 // 数码管数据引脚
DHT dht(DHTPIN, DHT11);
TM1637Display display(CLK, DIO);
void setup() {
Serial.begin(9600);
dht.begin();
display.setBrightness(0x0f); // 数码管亮度设置
}
void loop() {
float humidity = dht.readHumidity(); // 读取湿度值
float temperature = dht.readTemperature(); // 读取温度值
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
// 数码管显示温湿度值
int tempInt = (int)temperature;
int humiInt = (int)humidity;
int tempDecimal = (int)(temperature * 10) % 10;
int humiDecimal = (int)(humidity * 10) % 10;
int data[] = {tempInt / 10, tempInt % 10, tempDecimal, humiInt / 10, humiInt % 10, humiDecimal};
display.showNumberDecEx(data[0] * 10 + data[1], 0b01000000, true, 2, 0);
display.showNumberDecEx(data[3] * 10 + data[4], 0b00000100, true, 2, 3);
delay(2000);
}
```
在这段代码中,我们使用了DHT库和TM1637Display库,前者用于读取DHT11传感器的数据,后者用于控制数码管的显示。在setup()函数中,我们初始化了串口、DHT11传感器和数码管的亮度。在loop()函数中,我们先读取温湿度值,并将其显示在串口上。然后,我们将温湿度值转化为整数和小数部分,存储在一个整型数组中。最后,利用TM1637Display库将温度和湿度值显示在数码管上。
阅读全文