weergeven op lcd

Arduino specifieke Software
Berichten: 47
Geregistreerd: 24 Nov 2014, 19:47

weergeven op lcd

Berichtdoor corolla_g6 » 23 Sep 2015, 14:40

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
#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

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

Re: weergeven op lcd

Berichtdoor nicoverduin » 23 Sep 2015, 15:58

Gewoon converteren naar int. Dus dan wordt:
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));
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 47
Geregistreerd: 24 Nov 2014, 19:47

Re: weergeven op lcd

Berichtdoor corolla_g6 » 23 Sep 2015, 17:42

bedankt nico! het werkt, ga ik nu verder met toevoegen van functies

Berichten: 47
Geregistreerd: 24 Nov 2014, 19:47

Re: weergeven op lcd

Berichtdoor corolla_g6 » 23 Sep 2015, 18:31

ik heb nu dit gemaakt

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...

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

Re: weergeven op lcd

Berichtdoor nicoverduin » 23 Sep 2015, 20:18

blijven zoeken.... deze is te gemakkelijk. Dus geef je mijns inziens iets te snel op.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: inteqrupeyeli en 95 gasten