lcd1602显示浮点数
时间: 2023-05-25 11:06:33 浏览: 480
LCD1602 通常只能显示整数,如果需要显示浮点数需要进行四舍五入或者取整处理。以下是一个示例代码,以几个步骤演示如何将一个浮点数转换为LCD1602可以显示的字符串:
1. 引入 LiquidCrystal 库
```
#include <LiquidCrystal.h>
```
2. 创建 LiquidCrystal 对象并定义引脚
```
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
```
3. 定义需要显示的浮点数
```
double num = 3.14159;
```
4. 将浮点数转换为字符串
```
char str[10];
dtostrf(num, 5, 2, str); // 将浮点数 num 转换为字符串,保留两位小数,总长度为 5(包括小数点和负号)
```
5. 将字符串显示在 LCD1602 上
```
lcd.setCursor(0, 0); // 设置光标的位置,第 1 行第 1 列
lcd.print("Num: ");
lcd.print(str);
```
完整代码如下:
```
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 创建 LiquidCrystal 对象并定义引脚
void setup() {
lcd.begin(16, 2); // 初始化 LCD1602 进行使用
}
void loop() {
double num = 3.14159; // 定义需要显示的浮点数
char str[10];
dtostrf(num, 5, 2, str); // 将浮点数 num 转换为字符串,保留两位小数,总长度为 5(包括小数点和负号)
lcd.clear(); // 清空显示屏
lcd.setCursor(0, 0); // 设置光标的位置,第 1 行第 1 列
lcd.print("Num: "); // 在屏幕上显示 "Num: "
lcd.print(str); // 在屏幕上显示转换后的浮点数
delay(1000); // 延迟 1 秒
}
```
注意:在将浮点数转换为字符串时,`dtostrf()` 函数的第 2 个参数是字符串总长度,包括小数点和负号。如需显示 2 位小数,则总长度应该是 5。如果总长度不够,会导致数字显示不正常。
阅读全文