18-07-2018, 13:20
Witam.
Mam problem z odczytem wartosći z czujnika dht22 na atmedze, ciągle dostaje wynik 0. Juz od kilku dni się z tym męczę i jak narazie rezultatów brak.
To mój kod:
#define przycisk1 9
#define przycisk2 10
#define d (3000)
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
#include <DHT.h>
#include <Wire.h>
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
DS3231 rtc(SDA, SCL);
float wilgotnosc;
float temperatura;
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
dht.begin ();
rtc.begin ();
lcd.noBacklight ();
pinMode (przycisk1, INPUT_PULLUP);
pinMode (przycisk2, INPUT_PULLUP);
//rtc.setTime(17, 39, 30);
//rtc.setDate(30, 05, 2018);
}
void loop() {
temperatura = dht.readTemperature();
wilgotnosc = dht.readHumidity();
switch ((digitalRead(przycisk1) == LOW))
{
case 1:
//instrukcje dla var=1
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("TEMP");
lcd.setCursor(0,1);
lcd.print("WILG");
lcd.setCursor(8,0);
lcd.print(temperatura);
lcd.print("*C");
lcd.setCursor(8,1);
lcd.print(wilgotnosc);
lcd.print("%");
delay(d);
lcd.clear();
break;
default:
lcd.noBacklight();
lcd.setCursor(0,0);
lcd.print("Godz: ");
lcd.setCursor(0,1);
lcd.print("Data: ");
lcd.setCursor(6,0);
lcd.print(rtc.getTimeStr());
lcd.setCursor(6,1);
lcd.print(rtc.getDateStr());
}
if ((digitalRead(przycisk2) == LOW))
{
lcd.backlight();
delay(d);
}
else if ((digitalRead(przycisk2) == HIGH))
{
lcd.noBacklight ();
}
}
Będę wdzięczny za każdą pomoc. Dodam, ze na arduino program działa bez najmniejszych przeszkód.
Mam problem z odczytem wartosći z czujnika dht22 na atmedze, ciągle dostaje wynik 0. Juz od kilku dni się z tym męczę i jak narazie rezultatów brak.
To mój kod:
#define przycisk1 9
#define przycisk2 10
#define d (3000)
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
#include <DHT.h>
#include <Wire.h>
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
DS3231 rtc(SDA, SCL);
float wilgotnosc;
float temperatura;
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
dht.begin ();
rtc.begin ();
lcd.noBacklight ();
pinMode (przycisk1, INPUT_PULLUP);
pinMode (przycisk2, INPUT_PULLUP);
//rtc.setTime(17, 39, 30);
//rtc.setDate(30, 05, 2018);
}
void loop() {
temperatura = dht.readTemperature();
wilgotnosc = dht.readHumidity();
switch ((digitalRead(przycisk1) == LOW))
{
case 1:
//instrukcje dla var=1
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("TEMP");
lcd.setCursor(0,1);
lcd.print("WILG");
lcd.setCursor(8,0);
lcd.print(temperatura);
lcd.print("*C");
lcd.setCursor(8,1);
lcd.print(wilgotnosc);
lcd.print("%");
delay(d);
lcd.clear();
break;
default:
lcd.noBacklight();
lcd.setCursor(0,0);
lcd.print("Godz: ");
lcd.setCursor(0,1);
lcd.print("Data: ");
lcd.setCursor(6,0);
lcd.print(rtc.getTimeStr());
lcd.setCursor(6,1);
lcd.print(rtc.getDateStr());
}
if ((digitalRead(przycisk2) == LOW))
{
lcd.backlight();
delay(d);
}
else if ((digitalRead(przycisk2) == HIGH))
{
lcd.noBacklight ();
}
}
Będę wdzięczny za każdą pomoc. Dodam, ze na arduino program działa bez najmniejszych przeszkód.