DHT11, cijfers achter de komma
3 berichten
• Pagina 1 van 1
DHT11, cijfers achter de komma
Hallo,
Ik ben wat aan het experimenteren geweest met de DHT11, een kleine module waarmee je temperatuur en luchtvochtigheid kunt meten.
Dat meten lukt maar de 2 cijfers achter de komma blijven 00, m.a.w. alleen hele graden worden weergegeven.
Ik wil graag op 1/10 of 1/100 kunnen weergeven
Het zou kunnen dat de dht11.h dat niet in zich heeft.
Iemand die weet hoe het wel kan?
(programma loopt op de Arduino)
groeten Peter
#include <dht11.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(10, 9, 5, 4, 3, 2);
dht11 DHT11;
#define DHT11PIN A4
void setup()
{
lcd.clear();
lcd.begin(1, 16);
}
void loop()
{
lcd.setCursor(0,0);
int chk = DHT11.read(DHT11PIN);
switch (chk)
{
case 0: lcd.print("OK "); break;
case -1: lcd.print("Checksum"); break;
case -2: lcd.print("Time out"); break;
default: lcd.print("Unknown "); break;
}
lcd.setCursor(9,0);
lcd.print((float)DHT11.humidity,2);
lcd.setCursor(0,1);
lcd.print((float)DHT11.temperature,2);
lcd.setCursor(9,1);
lcd.print((float)DHT11.dewPoint(),2);
delay(2000);
}
Ik ben wat aan het experimenteren geweest met de DHT11, een kleine module waarmee je temperatuur en luchtvochtigheid kunt meten.
Dat meten lukt maar de 2 cijfers achter de komma blijven 00, m.a.w. alleen hele graden worden weergegeven.
Ik wil graag op 1/10 of 1/100 kunnen weergeven
Het zou kunnen dat de dht11.h dat niet in zich heeft.
Iemand die weet hoe het wel kan?
(programma loopt op de Arduino)
groeten Peter
#include <dht11.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(10, 9, 5, 4, 3, 2);
dht11 DHT11;
#define DHT11PIN A4
void setup()
{
lcd.clear();
lcd.begin(1, 16);
}
void loop()
{
lcd.setCursor(0,0);
int chk = DHT11.read(DHT11PIN);
switch (chk)
{
case 0: lcd.print("OK "); break;
case -1: lcd.print("Checksum"); break;
case -2: lcd.print("Time out"); break;
default: lcd.print("Unknown "); break;
}
lcd.setCursor(9,0);
lcd.print((float)DHT11.humidity,2);
lcd.setCursor(0,1);
lcd.print((float)DHT11.temperature,2);
lcd.setCursor(9,1);
lcd.print((float)DHT11.dewPoint(),2);
delay(2000);
}
Advertisement
- astrofrostbyte
- Berichten: 229
- Geregistreerd: 20 Jan 2013, 12:01
Re: DHT11, cijfers achter de komma
Hey Peter,
Ik neem aan dat je de dhtlib gebruikt die op arduino.cc staat ? http://playground.arduino.cc/Main/DHT11Lib
Als je in dht.h kijkt zie je de types die de library gebruikt:
Hieruit kan je al veel halen, dit is duidelijk integer voor de functies(methods) en de variabelen.
Volgens mij zijn ze niet geschaald, dus 1 == 1Celcius of 1%
Nu is dat ook wel te verwachten aangezien de sensor niet naukeurig genoeg om zinnige digits achter de komma te meten.
Wat je zou kunnen doen is een lopend-gemiddelde maken, dan kan je er nog wel een paar zinnige digit erbij verzinnen, maar moet je toch mee oppassen.
Wat je ook nog als informatie erbij kan maken is 'tendens', gaat ie omhoog of omlaag, dat is ook nog wel betrouwbaar te maken mbv vrij diepe middeling.
Ik weet niet waarom ze in je voorbeeld code in de lcd.print de resultaten casten naar een float ? ik denk dat dat meer te maken heeft met uitlijning op het scherm.
Ik neem aan dat je de dhtlib gebruikt die op arduino.cc staat ? http://playground.arduino.cc/Main/DHT11Lib
Als je in dht.h kijkt zie je de types die de library gebruikt:
- Code: Alles selecteren
class dht11
{ public:
int read(int pin);
int humidity;
int temperature;
};
Hieruit kan je al veel halen, dit is duidelijk integer voor de functies(methods) en de variabelen.
Volgens mij zijn ze niet geschaald, dus 1 == 1Celcius of 1%
Nu is dat ook wel te verwachten aangezien de sensor niet naukeurig genoeg om zinnige digits achter de komma te meten.
Wat je zou kunnen doen is een lopend-gemiddelde maken, dan kan je er nog wel een paar zinnige digit erbij verzinnen, maar moet je toch mee oppassen.
Wat je ook nog als informatie erbij kan maken is 'tendens', gaat ie omhoog of omlaag, dat is ook nog wel betrouwbaar te maken mbv vrij diepe middeling.
Ik weet niet waarom ze in je voorbeeld code in de lcd.print de resultaten casten naar een float ? ik denk dat dat meer te maken heeft met uitlijning op het scherm.
Gear: Arduino- Uno,Due,Ethernet,Mega2560 , OLS LogicAnalyser, TDS1002, Rigol DG1022, J-Link EDU, BusPirate
3 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 58 gasten