Go Down

Topic: cifre dopo la virgola per una tensione (Read 991 times) previous topic - next topic

reizel

come posso far in modo di vedere solo una cifra dopo la virgola in una lettura?

ed e' giusto usare "float" o ci sono altri modi?

io adesso leggo x,xx   vorrei sapere come fare x,x

Code: [Select]

#include <LiquidCrystal.h>
//legge analogread e converte in tensione 0 to 5v
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float tension = 0; //serve per avere cifre dopo la virgola

void setup()
{
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("tensione su A0");
}
void loop()
{
  lcd.setCursor(0, 1);
 
  tension = analogRead(0) * 0.005 ;
 
  lcd.print(tension);                 

  delay(100);
}

lesto

allora, se la print è implementata come in serial, fai
print(numero, 1);
dove 1 è il numero di cifre dopo la virgola.

altrimenti devi usare una sprintf, che in pratica stampa una stringa come la printf del c ma anzichè a video, in un'altra stringa.

per esempio:

float a = 10.5555555;
char stringaFinale[10];
sprintf(stringaFinale, "%f.1", a);
lcd.print(stringaFinale);

il %f.1 significa: %f indica che vuoi stampare un float, .1 che vuoi solo un carattere dopo la stringa. Dovresti fare attenzione che le cifre del float non siano maggiori della grandezza della stringa, altrimenti hai un overflow!
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

reizel

grazie, funziona!

lcd.print(tension0, 1);

mostra solo la prima cifra dopo la virgola :)

Go Up