Arduino и Nextion дисплей с десятичными числами
У меня есть Arduino MEGA с одним из этих дисплеев Nextion. Я создал хороший дисплей, и моя цель - показать аналоговые входы. Однако я заметил, что этот дисплей не может отображать десятичные дроби (используя число "виджет"). Так что я использую виджет "текст", чтобы сделать это, к сожалению, это не работает, кто-нибудь знает почему?
#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);
}
Заранее спасибо!:)
2 ответа
Если вы используете текстовый объект, команда должна быть Serial.print("n3.txt=\"yourtext\"");
Это может помочь:
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);
Вы можете использовать виджет Xfloat и отправить значение так же, как и число, но вам нужно изменить параметры "vvs0" и "vvs1" в редакторе nextion, чтобы виджет изменил значение. Например, если вы хотите показать значение 2,53, умножьте его на 100, а затем установите параметр "vvs0" на 1 и "vvs1" на 2.