Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Floating point LCD显示不同的浮点数_Floating Point_Arduino_Microcontroller_Lcd_Arduino Uno - Fatal编程技术网

Floating point LCD显示不同的浮点数

Floating point LCD显示不同的浮点数,floating-point,arduino,microcontroller,lcd,arduino-uno,Floating Point,Arduino,Microcontroller,Lcd,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 hallSen

我正在开发一个在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");
}
#包括
挥发性有机物;
浮子流量=0.0;
浮子体积=0.0;
int霍尔传感器=2;
液晶显示器(12,11,9,8,7,6);
void rpm(){
NbTopsFan++;
}
无效设置(){
pinMode(3,输出);
pinMode(霍尔传感器,输入);
Serial.begin(9600);
连接中断(0,rpm,上升);
lcd.begin(16,2);
lcd.clear();
}
空循环(){
数字写入(3,高);
NbTopsFan=0;
sei();
延迟(1000);
cli();
流量=NbTopsFan/7.5;
体积+=(流速/60);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(“流:”);
打印(流量);
lcd.打印(“L/m”);
lcd.setCursor(0,1);
lcd.打印(“卷:”);
lcd.打印(卷);
lcd.打印(“L”);
串行打印(“脉冲”);
串行打印(NbTopsFan);
串行打印(流速);
连续打印(“L/m”);
系列印刷品(第4卷);
连续打印(“升”);
}

根据的文档,要指定要使用的小数位数,需要第二个参数。所以在你的例子中,你可以使用

lcd.print(flowrate,4);


解决了,非常感谢。好的,谢谢你的回答,但是当我尝试使用Sertial.println(第4卷);为什么不能展示同样的案例<我该怎么办。。。
 lcd.print(volume,4);