我有一个带有其中一个Nextion显示器的Arduino MEGA。我创建了一个很好的显示器,我的目标是显示模拟输入。但是我注意到这个显示不能显示小数(使用数字"小部件")。所以我正在使用" text"要做到这一点的小部件,不幸的是它没有用,任何人都知道为什么?
#include "Nextion.h"
#define RES 1023
#define AREF 5
int voltage_pin=A0;
int raw_voltage;
double voltage;
String voltage2;
void setup() {
Serial.begin(9600);
}
void loop() {
raw_voltage=analogRead(voltage_pin);
voltage=raw_voltage*AREF/RES;
Serial.print("n3.val=");
Serial.print(raw_voltage);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
String voltage2=String(voltage);
Serial.print("t10.txt=");
Serial.print(voltage2);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
delay(100);
}
提前致谢! :)
答案 0 :(得分:0)
这可能会有所帮助:
value1 = analogRead(A1);
vout1 = (value1 * AREF) / 1023.0;
vin1 = vout1 / (R2 / (R1 + R2));
memset(buffer, 0, sizeof(buffer));
dtostrf(vin1,5, 2, buffer);
t4.setText(buffer);
vin1 = map(vin1, 8, 15, 0, 100);
send_ProgressBar("j2", vin1);
答案 1 :(得分:0)
如果您正在使用文本对象,则命令应为 Serial.print(“ n3.txt = \” yourtext \“”);
答案 2 :(得分:0)
您可以使用Xfloat小部件并以与数字相同的方式发送值,但是您需要在nextion编辑器上更改参数“ vvs0”和“ vvs1”,因此小部件可以调整值。例如,如果要显示值2.53,请将其乘以100,然后将参数“ vvs0”设置为1,将“ vvs1”设置为2。