2 decimalen achter de komma

Arduino specifieke Software
Berichten: 68
Geregistreerd: 21 Apr 2013, 22:48
Woonplaats: Hoorn

2 decimalen achter de komma

Berichtdoor babbelkwebbel » 13 Feb 2017, 18:40

Beste Arduino(ers).

Ik ben bezig met een sensor AM2320, als ik deze uit lees met Serial.print dan krijg ik netjes tot 2 decimalen achter de komma de waarde zo als ik het graag wil hebben, echter als ik de waarde in een array zet (room_temp[2]), en de ze vervolgens weer uitlees met Serial.print (room_temp[2],4, dan zijn er geen cijfers meer achter de komma.
Ik zit waarschijnlijk over het probleem heen te kijken, maar kom er even niet uit!.

Graag wel even een jan boeren fluitjes uitleg, ben niet echt een pro op dit gebied....

Met vriendelijke groet
Erik,

#include <Wire.h>
#include <AM2320.h>
AM2320 th;

int s0 = 0; //value of select pin at the 4051 (s0)
int s1 = 0; //value of select pin at the 4051 (s1)
int s2 = 0; //value of select pin at the 4051 (s2)

int count = 0; //which y pin we are selecting
int sensornumber = 0;
int attic;
int guestroom;


int room_temp[9]={attic, guestroom};
int room_humidity[9]={attic, guestroom};
int room_pressure=0;


void setup()
{
Serial.begin (115200);
pinMode(10, OUTPUT); // s0 of 4051 selector pin // nano=10 mega=35
pinMode(11, OUTPUT); // s1 of 4051 selector pin // nano=11 mega=36
pinMode(12, OUTPUT); // s2 of 4051 selector oin // nano=12 mega=37

}

void loop ()
{
for (count=0; count<=7; count++) // select the bit
{
s0 = bitRead(count,0);
s1 = bitRead(count,1);
s2 = bitRead(count,2);

digitalWrite(10, s0);
digitalWrite(11, s1);
digitalWrite(12, s2);

delay(500);

switch (th.Read()) {
case 2:
Serial.println("CRC failed");
break;
case 1:
Serial.println("Sensor offline");
break;
case 0:

Serial.print("sensornumber ");
Serial.print(count);
Serial.print("\t");
Serial.print("\t");
Serial.print(" humidity: ");
Serial.print(th.h);
Serial.print(" %");
Serial.print("\t");
Serial.print("\t");
Serial.print("temperature: ");
Serial.print(th.t);
Serial.println(" Gr");
break;
}

}
room_temp[2] = (th.h);
Serial.println(room_temp[2]),4;

}


Dit is hoe het door Serial.print wordt afgedrukt, en getal 21 is dan de afgeronde waarde van sensor 7 humidity.

sensornumber 0 humidity: 21.60 % temperature: 20.90 Gr
sensornumber 1 humidity: 20.70 % temperature: 20.70 Gr
sensornumber 2 humidity: 21.10 % temperature: 20.60 Gr
sensornumber 3 humidity: 23.20 % temperature: 20.80 Gr
sensornumber 4 humidity: 23.90 % temperature: 20.90 Gr
sensornumber 5 humidity: 21.50 % temperature: 20.40 Gr
sensornumber 6 humidity: 23.50 % temperature: 20.60 Gr
sensornumber 7 humidity: 21.20 % temperature: 20.50 Gr
21

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: 2 decimalen achter de komma

Berichtdoor nicoverduin » 13 Feb 2017, 18:57

Dat klopt. De arrays zijn int. En een int is de verzameling gehele getallen. Je moet er dus floats van maken
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 68
Geregistreerd: 21 Apr 2013, 22:48
Woonplaats: Hoorn

Re: 2 decimalen achter de komma

Berichtdoor babbelkwebbel » 13 Feb 2017, 21:51

Hallo Nico,

bedankt voor je antwoord, maar daar moet ik even over puzzelen, is me niet gelijk duidelijk, maar ga daar eens op googlen.

Groet
Erik,

oke heb er even op gepuzzeld, en ben er achter, wijn en arduino gaat niet samen, of te wel terug naar de melk, float van gemaakt en klaar.

nogmaals bedankt.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 21 gasten