arduino esp32-c3两位数码管显示当前温度与设置温度
时间: 2023-11-15 16:04:31 浏览: 150
以下是一个基本的代码实现,用于在ESP32-C3上控制两位数码管显示当前温度和设置温度:
```
#include <Arduino.h>
#include <TM1637.h> // 引用TM1637库
#define CLK 25 // 数码管CLK引脚
#define DIO 26 // 数码管DIO引脚
TM1637 display(CLK, DIO); // 实例化TM1637对象
float current_temp = 0; // 当前温度
float set_temp = 25; // 设置温度
void setup() {
display.init(); // 初始化数码管
}
void loop() {
// 获取当前温度
current_temp = get_current_temp();
// 显示当前温度
display_temperature(current_temp);
// 显示设置温度
display_set_temperature(set_temp);
delay(1000);
}
// 获取当前温度
float get_current_temp() {
// 通过传感器获取当前温度
// 这里简化为随机数
return random(10, 30);
}
// 显示当前温度
void display_temperature(float temp) {
// 将温度转换为两位整数
int temp_int = (int)temp;
// 显示整数部分
display.display(0, temp_int / 10);
display.display(1, temp_int % 10);
}
// 显示设置温度
void display_set_temperature(float temp) {
// 将温度转换为两位整数
int temp_int = (int)temp;
// 显示整数部分
display.display(2, temp_int / 10);
display.display(3, temp_int % 10);
}
```
在上面的代码中,我们使用了一个TM1637库来控制数码管显示。在`setup()`函数中,我们初始化TM1637对象并设置引脚。在`loop()`函数中,我们首先获取当前温度,然后分别显示当前温度和设置温度。`get_current_temp()`函数中,我们通过传感器获取当前温度,这里简化为随机数。`display_temperature()`和`display_set_temperature()`函数分别用于将温度转换为两位整数并显示到数码管上。这里假设数码管的4位中,前两位显示当前温度,后两位显示设置温度。
需要注意的是,上面的代码中并没有实现设置温度的功能,如果需要实现,可以通过按键控制,或者通过串口输入等方式来实现。
阅读全文