1

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()
}

2

Re: Стрелочный индекатор

Решино!
/*
   -- strelka --
   
   This source code of graphical user interface
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 3.1.13 or later version
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.15.01 or later version;
     - for iOS 1.12.1 or later version;
   
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.   
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// можете включить вывод отладочной информации в Serial на 115200
//#define REMOTEXY__DEBUGLOG   

// определение режима соединения и подключение библиотеки 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,57,0,2,24,75,0,0,128,191,0,0,192,64,0,0,
  192,64,0,0,32,64,0,0,128,63,24,98,97,114,0,67,33,111,40,10,
  78,2,26,2 };
 
// структура определяет все переменные и события вашего интерфейса управления
struct {

    // output variables
  float Press_1; // 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.Press_1=P ;
  RemoteXY.value_01=P ;
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных
  // не используйте функцию delay(), вместо нее используйте RemoteXY_delay()
}