液晶显示屏显示不同的浮点数

Uch*_*net 2 floating-point microcontroller lcd arduino arduino-uno

我正在开发将在LCD上显示输出的系统。

我将变量数据类型声明为float,但是LCD显示屏显示0.00而不初始化,因为我用0.0声明了它,所以

我希望LCD显示屏显示0.000,但是无论我如何尝试更改初始化值,LCD显示屏始终显示0.00 因此,如何使LCD显示屏显示0.000,

这是图像的链接,
下面是我的代码:

#include <LiquidCrystal.h>

volatile int NbTopsFan;
float flowrate = 0.0;
float volume = 0.0;
int hallSensor = 2;


LiquidCrystal lcd (12, 11, 9, 8, 7, 6);
void rpm() {
  NbTopsFan++;
}

void setup(){
  pinMode(3, OUTPUT);
  pinMode (hallSensor, INPUT);
  Serial.begin (9600);
  attachInterrupt (0, rpm, RISING);

  lcd.begin (16, 2);
  lcd.clear ();
}
void loop (){
  digitalWrite(3, HIGH);
  NbTopsFan=0;
  sei();
  delay(1000);
  cli();
  flowrate = NbTopsFan / 7.5;
  volume += (flowrate / 60);



  lcd.clear ();
  lcd.setCursor(0, 0);
  lcd.print("flow :");
  lcd.print(flowrate);
  lcd.print("L/m");
  lcd.setCursor(0, 1);
  lcd.print("VOl :");
  lcd.print(volume);
  lcd.print("L");

  Serial.print("Pulse");
  Serial.print(NbTopsFan);
  Serial.print(flowrate);
  Serial.print("L/m");
  Serial.print(volume,4);
  Serial.print("liter");
}
Run Code Online (Sandbox Code Playgroud)

Dem*_*ris 5

根据Print的文档,要指定要使用的小数位数,需要第二个参数。因此,在您的示例中,您可以使用

lcd.print(flowrate,4);
Run Code Online (Sandbox Code Playgroud)

 lcd.print(volume,4);
Run Code Online (Sandbox Code Playgroud)