Topic: Стрелочный индекатор
Доброго времени суток господа!
Помогите в настройке приложения. Стрелочный индекатор показыает только целые числа, и следовательно перепрыгивает, нет плавности. То есть необходимо отобразить два знака после запятьй.
// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>
// настройки соединения
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600
#include <RemoteXY.h>
// конфигурация интерфейса RemoteXY
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = // 64 bytes
{ 255,0,0,8,0,57,0,19,0,0,0,0,31,1,106,200,1,1,2,0,
71,2,4,102,102,56,0,2,24,75,0,0,128,191,0,0,192,64,0,0,
192,64,0,0,64,64,0,0,128,63,24,98,97,114,0,67,33,111,40,10,
78,2,26,2 };
// структура определяет все переменные и события вашего интерфейса управления
struct {
// output variables
float P; // oт -1 до 6
float value_01;
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
void setup()
{
RemoteXY_Init ();
// Инициализируем серийный порт для вывода информации в терминал
Serial.begin(9600);
// Источник опорного напряжения для АЦП равен напряжению питания или 5В
analogReference(DEFAULT);
// TODO you setup code
}
void loop()
{
RemoteXY_Handler ();
// Считываем показания АЦП в переменную
uint16_t adc = analogRead(A0);
// itoa(adc, RemoteXY.P, 10);
// Вычисляем напряжение на средней точке резистивного делителя
//float Uout = float(adc) * 4.85 / 1024.0;
// Выводим информацию в терминал
//float P = float(adc) * 5.88 / 1024.0;
float P = (float(adc) - 117) * 0.0068;
if (adc < 117)
{
P = 0;
Serial.println("Error");
}
else
{
P = (float(adc) - 117) * 0.0068;
Serial.print(P, 2); Serial.println(" Bar");
RemoteXY_delay(1000);
}
RemoteXY.P=map(analogRead(A0),0,1023,-1,6);
RemoteXY.value_01=map(analogRead(A0),0,1023,-1,6);
// TODO you loop code
// используйте структуру RemoteXY для передачи данных
// не используйте функцию delay(), вместо нее используйте RemoteXY_delay()
}