weergeven op lcd
5 berichten
• Pagina 1 van 1
- corolla_g6
- Berichten: 47
- Geregistreerd: 24 Nov 2014, 19:47
weergeven op lcd
ik ben bezig om mijn meganische ventilatie te regelen, maar nu geef ik de waardes weer op het scherm alleen ik wil niet achter de komma werken
ik dacht dat je dit kan oplossen met float?
maar ik heb het geprobeerd en ik krijg foutmeldingen
cpp code
als ik float dht; doe dan werkt hij nog alleen voor de komma maar hoe krijg ik dan de ,00 weg?
ik dacht dat je dit kan oplossen met float?
maar ik heb het geprobeerd en ik krijg foutmeldingen
cpp code
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht.h>
#define DHT11Badkamer 2
#define DHT11Wc 3
#define DHT11Washok 4
#define outLaag 5
#define outMidden 6
#define outHoog 7
#define inBadkamerHoog 9
#define StandLaag 50
#define StandMidden 70
#define StandHoog 80
#define NaloopTijdBadkamer 5000 // nalooptijd na trigger badkamer
#define NaloopTijdWashok 5000 // nalooptijd van het washok
#define NaloopTijdWc 5000 // nalooptijd van de wc
dht DHT1;
dht DHT2;
dht DHT3;
float dht;
byte mac[] = {
0x34, 0x48, 0x56, 0x11, 0x35, 0x53 };
IPAddress ip(192,168,2,154); //ip adress
EthernetServer server(80);
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27
void setup()
{
pinMode(inBadkamerHoog, INPUT);
pinMode(outLaag, OUTPUT);
pinMode(outMidden, OUTPUT);
pinMode(outHoog, OUTPUT);
digitalWrite(outLaag, LOW);
digitalWrite(outMidden, HIGH);
digitalWrite(outHoog, HIGH);
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Status:");
lcd.setCursor(0, 1);
lcd.print("BK:");
lcd.setCursor(0, 2);
lcd.print("WC:");
lcd.setCursor(0, 3);
lcd.print("WH:");
}
void loop() {
DHT1.read11(DHT11Badkamer);
DHT2.read11(DHT11Wc);
DHT3.read11(DHT11Washok);
Serial.print("badkamer: ");
Serial.print("humidity = ");
Serial.print(DHT1.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT1.temperature);
Serial.println("C ");
lcd.setCursor(3, 1);
lcd.print(DHT1.humidity);
lcd.setCursor(9,1);
lcd.print("% ");
lcd.setCursor(11, 1);
lcd.print(DHT1.temperature);
lcd.setCursor(17, 1);
lcd.print("C ");
Serial.print("wc: ");
Serial.print("humidity = ");
Serial.print(DHT2.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT2.temperature);
Serial.println("C ");
lcd.setCursor(3, 2);
lcd.print(DHT2.humidity);
lcd.setCursor(9,2);
lcd.print("% ");
lcd.setCursor(11, 2);
lcd.print(DHT2.temperature);
lcd.setCursor(17, 2);
lcd.print("C ");
Serial.print("Washok: ");
Serial.print("humidity = ");
Serial.print(DHT3.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT3.temperature);
Serial.println("C ");
lcd.setCursor(3, 3);
lcd.print(DHT3.humidity);
lcd.setCursor(9,3);
lcd.print("% ");
lcd.setCursor(11, 3);
lcd.print(DHT3.temperature);
lcd.setCursor(17, 3);
lcd.print("C ");
delay(3000);
}
;
als ik float dht; doe dan werkt hij nog alleen voor de komma maar hoe krijg ik dan de ,00 weg?
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: weergeven op lcd
Gewoon converteren naar int. Dus dan wordt:
cpp code
nu:
cpp code
let wel hij kapt af. Wil je het netjes afronden dan gewoon 0.5 toevoegen en krijg je dit:
cpp code
cpp code
Serial.print(DHT2.temperature);
nu:
cpp code
Serial.print(int(DHT2.temperature));
let wel hij kapt af. Wil je het netjes afronden dan gewoon 0.5 toevoegen en krijg je dit:
cpp code
Serial.print(int(DHT2.temperature + 0.5));
- corolla_g6
- Berichten: 47
- Geregistreerd: 24 Nov 2014, 19:47
Re: weergeven op lcd
bedankt nico! het werkt, ga ik nu verder met toevoegen van functies
- corolla_g6
- Berichten: 47
- Geregistreerd: 24 Nov 2014, 19:47
Re: weergeven op lcd
ik heb nu dit gemaakt
cpp code
en nu wil ik hierbij toevoegen dat inBadkamerStatus weer laag is dat dan outHoog laag gaat en dan outMidden hoog gaat en na ingestelde tijd (NaloopTijdBadkamer) outMidden laag gaat
ik heb al zitten spelen met blink whitout delay en gezocht op google maar ik kan niet de juiste manier vinden...
cpp code
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht.h>M
#define DHT11Badkamer 2
#define DHT11Wc 3
#define DHT11Washok 4
#define outLaag 5
#define outMidden 6
#define outHoog 7
#define inBadkamerHoog 9
#define StandLaag 50
#define StandMidden 70
#define StandHoog 80
#define NaloopTijdBadkamer 5000 // nalooptijd na trigger badkamer
#define NaloopTijdWashok 5000 // nalooptijd van het washok
#define NaloopTijdWc 5000 // nalooptijd van de wc
dht DHT1;
dht DHT2;
dht DHT3;
boolean inBadkamerStatus = 0;
byte mac[] = {
0x34, 0x48, 0x56, 0x11, 0x35, 0x53 };
IPAddress ip(192,168,2,154); //ip adress
EthernetServer server(80);
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27
void setup()
{
pinMode(inBadkamerHoog, INPUT);
pinMode(outLaag, OUTPUT);
pinMode(outMidden, OUTPUT);
pinMode(outHoog, OUTPUT);
digitalWrite(outLaag, LOW);
digitalWrite(outMidden, HIGH);
digitalWrite(outHoog, HIGH);
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Status:");
lcd.setCursor(0, 1);
lcd.print("BK:");
lcd.setCursor(0, 2);
lcd.print("WC:");
lcd.setCursor(0, 3);
lcd.print("WH:");
}
void loop() {
DHT1.read11(DHT11Badkamer);
DHT2.read11(DHT11Wc);
DHT3.read11(DHT11Washok);
Serial.print("badkamer: ");
Serial.print("humidity = ");
Serial.print(DHT1.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT1.temperature);
Serial.println("C ");
lcd.setCursor(4, 1);
lcd.print(int(DHT1.humidity));
lcd.setCursor(7,1);
lcd.print("% ");
lcd.setCursor(9, 1);
lcd.print(int(DHT1.temperature));
lcd.setCursor(12, 1);
lcd.print("C ");
Serial.print("wc: ");
Serial.print("humidity = ");
Serial.print(DHT2.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT2.temperature);
Serial.println("C ");
lcd.setCursor(4, 2);
lcd.print(int(DHT2.humidity));
lcd.setCursor(7,2);
lcd.print("% ");
lcd.setCursor(9, 2);
lcd.print(int(DHT2.temperature));
lcd.setCursor(12, 2);
lcd.print("C ");
Serial.print("Washok: ");
Serial.print("humidity = ");
Serial.print(DHT3.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT3.temperature);
Serial.println("C ");
lcd.setCursor(4, 3);
lcd.print(int(DHT3.humidity));
lcd.setCursor(7,3);
lcd.print("% ");
lcd.setCursor(9, 3);
lcd.print(int(DHT3.temperature));
lcd.setCursor(12, 3);
lcd.print("C ");
//------------------------------------------extern hoog schakelen vanuit badkamer----------------//
inBadkamerStatus = digitalRead(inBadkamerHoog);
if (inBadkamerStatus) {
digitalWrite(outHoog, LOW);
}
else {
digitalWrite(outHoog, HIGH);
}
//-----------------------------------------einde programma------------------------------------//
delay(500);
}
en nu wil ik hierbij toevoegen dat inBadkamerStatus weer laag is dat dan outHoog laag gaat en dan outMidden hoog gaat en na ingestelde tijd (NaloopTijdBadkamer) outMidden laag gaat
ik heb al zitten spelen met blink whitout delay en gezocht op google maar ik kan niet de juiste manier vinden...
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: weergeven op lcd
blijven zoeken.... deze is te gemakkelijk. Dus geef je mijns inziens iets te snel op.
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 103 gasten