Помогите пожалуйста округлить.

vocvark11
Offline
Зарегистрирован: 27.08.2017
#include <Adafruit_GFX.h>                             // библиотека дисплея NOKIA 5110
#include <Adafruit_PCD8544.h>                     // библиотека контроллера PCD8544

// pin 3 - Serial clock out (SCLK)
// pin 4 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 6 - LCD chip select (CS)
// pin 7 - LCD reset (RST)

Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);       // назначение пинов дисплея

int asPin = 0;                                                    // MPXV5004DP Vout pin - A0
double asOffsetV = 0.0;                                 // variable for V offset (autozero)



void setup()
{
  Serial.begin (9600);                                      // открывает последовательный порт
                                                                     // задаёт скорость обмена 9600
   asOffsetV = analogRead(asPin) * .0047;  // Zero speed sensor reading * 4.7 mV per count 
  display.begin();                                           // инициализация диспелея
  display.setContrast(60);                            // установка контраста
  display.setTextColor(BLACK);                   // установка цвета дисплея
  display.setTextSize(2);                            // установка размера текста
  display.clearDisplay();                              // очищаем дисплей
  display.display();

  delay(500);
    
  
    
}

void loop(void)
{
 double asVolts = 0.0;
  double compVOut = 0.0;
  double dynPress = 0.0;
  double airSpeed = 0.0;
  
  asVolts = analogRead(asPin) * .0047;
  
  Serial.print("Raw reading (V): ");
  Serial.println(asVolts);

  Serial.print("Offset (V): ");
  Serial.println(asOffsetV);
  
  compVOut = asVolts - asOffsetV;
  
  Serial.print("Reading - Offset (V): ");
  Serial.println(compVOut);

  //dynPress = (compVOut / 5.0 - .2) / .2;                               // Transfer function with no autozero
  if(compVOut < .005)  {                                                          // Set noise to 0, min speed is ~8mph
    compVOut = 0.0;
  }  
  dynPress = compVOut * 1000.0;                                               // With autozero, dynamic pressure in kPa = Vout, convert kPa to P
    
  Serial.print("Dynamic pressure (Pa):  ");
  Serial.println(dynPress); 

  airSpeed = sqrt((2 * dynPress)/1.225);                                       // Converts pressure to m/s, 

Serial.print("*********************Speed (km|h): ");
  Serial.println(airSpeed * 3,6);                                                       // m/s to км\ч  

 
 
  // данные на дисплей 5110 \\
  
  display.clearDisplay();                                                              //  очищаем дисплей
  display.setCursor(10,0);                                                              // курсор в верхний левый угол
  display.print ("SPEED"); 
  display.setCursor(0,20);                                                             // символ высоты
  display.print((airSpeed)*3,6);                                                      // отправляет значение высоты (по модулю) в метрах на дисплей
  display.display();                                                                          // выводим данные на дисплей
    
  Serial.println(); 
  
  delay(1000);

}

На дисплее после запятой очень много чисел. Как убрать и сделать целое. Знаю, что команда float, но не знаю как её реализовать.

Спасибо.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Если про строку 77, то два варианта. Первый - выведет целое число:

 

 display.print((long) airSpeed*3); 

Второй - число с двумя знаками после запятой:

display.print((airSpeed)*3,2);

 

vocvark11
Offline
Зарегистрирован: 27.08.2017

ОГРОМНЕЙШЕЕ СПАСИБО!!! Всё получилось.