Pages: [1]   Go Down
Author Topic: comando serial.println  (Read 538 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Olá pessoal,

Necessito manter 2 casas decimais após a virgula com o comando serial.print, acontece que no arduino não consigo achar nada que possibilite esta ação, ja tentei comando como serial na familia IDE para PIC (%f0.00 , se não me engano) mais não funciona,
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 27
Posts: 1431
Tomorrow I will know a BIT more than yesterday
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
println()
Description

Prints data to the serial port as human-readable ASCII text followed by a carriage return character (ASCII 13, or '\r') and a newline character (ASCII 10, or '\n'). This command takes the same forms as Serial.print().
Syntax

Serial.println(val)
Serial.println(val, format)
Parameters

val: the value to print - any data type

format: specifies the number base (for integral data types) or number of decimal places (for floating point types)

Code:
float  minhaVar = 1.2f;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
    Serial.print("O valor e: ");
    Serial.println(minhaVar,2); // imprime duas casas decimais
    delay(1000);
}

Passa tambem os olhos pela funçao sprintf ...
« Last Edit: November 07, 2013, 12:22:05 pm by HugoPT » Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Obrigado pela resposta,
Mais não compreendi o porque do float  1.2f;
seria a mesma coisa de %f0.00 (2 casas decimal)

att.
Logged

Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1.2f é a forma que a linguagem C de programação define número do tipo float. Se fosse simplesmente 1.2 o número seria considerado um double (o dobro de memória do float).

Essa forma de imprimir utilizando o %f0.00 não se aplica no Arduino. Você deve estar confundindo com o printf, que tem uma sintaxe parecida com isso que você quer fazer. No Arduino, o mais utilizado é o Serial.print/println, como o Hugo falou acima.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Opa, ok..

so aproveitando o tropico, como consigo enviar um valor de uma varialvel pela serial dos arduino, necessito montar uma matriz ???
Pretendo enviar um valor de um sensor de temperatura LM35. que manda uma valor de por exemplo 30.
« Last Edit: November 07, 2013, 01:49:25 pm by EdY++ » Logged

Portugal
Offline Offline
Edison Member
*
Karma: 27
Posts: 1431
Tomorrow I will know a BIT more than yesterday
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Se fosse simplesmente 1.2 o número seria considerado um double (o dobro de memória do float).
Um double e um float ambos ocupam 4 bytes de RAM

Quote
DOUBLE
Double precision floating point number. On the Uno and other ATMEGA based boards, this occupies 4 bytes. That is, the double implementation is exactly the same as the float, with no gain in precision.

FLOAT
Datatype for floating-point numbers, a number that has a decimal point. Floating-point numbers are often used to approximate analog and continuous values because they have greater resolution than integers. Floating-point numbers can be as large as 3.4028235E+38 and as low as -3.4028235E+38. They are stored as 32 bits (4 bytes) of information.


 
Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


Aracaju, SE, Brasil
Offline Offline
Sr. Member
****
Karma: 4
Posts: 323
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Disso eu não sabia. double é o mesmo float.
Logged

Pages: [1]   Go Up
Jump to: