2 decimalen achter de komma
3 berichten
• Pagina 1 van 1
- babbelkwebbel
- Berichten: 68
- Geregistreerd: 21 Apr 2013, 22:48
- Woonplaats: Hoorn
2 decimalen achter de komma
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
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
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: 2 decimalen achter de komma
Dat klopt. De arrays zijn int. En een int is de verzameling gehele getallen. Je moet er dus floats van maken
- babbelkwebbel
- Berichten: 68
- Geregistreerd: 21 Apr 2013, 22:48
- Woonplaats: Hoorn
Re: 2 decimalen achter de komma
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.
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.
3 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 21 gasten