27-12-2018, 12:35
(Ten post był ostatnio modyfikowany: 30-12-2018, 10:58 przez Automatyk231.)
Wartość w monitorze portu szeregowego zatrzymuje się na punkcie "10" [Serial.println("10");]. Pytanie dlaczego skoro w tym samym programie, jednak bez dodawania histerezy, wszystko działa jak należy?
Kod PHP:
#include "DHT.h"
#include "U8glib.h"
#define LED_INFO_RADIATOR 4
#define LED_INFO_VAPORGENERATOR 13
#define LED_INFO_DEAD_ZONE 1
#define DHTPIN 2
#define DHTTYPE DHT22
const int stateX = 0;
const int stateA = 1;
const int stateB = 2;
const int stateC = 3;
int state = stateA;
const int sizeRangeX = 2;
const int sizeRangeB = 2;
int humidity;
float temperature;
unsigned long currentTime = 0;
unsigned long rememberedTime = 0;
int relayPin = 8;
int relayPin2 = 12;
int relayPin3 = 7;
int relayPin4 = 9;
int potentiometer = A0;
int valuePotentiometer = 0;
int data[5];
int i = 0;
int average;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0); // I2C(TWI)
DHT dht(DHTPIN, DHTTYPE, 6);
char str[10];
void setup()
{
Serial.begin(9600);
Serial.println("1");
dht.begin();
pinMode(potentiometer, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(relayPin2, OUTPUT);
pinMode(relayPin3, OUTPUT);
pinMode(relayPin4, OUTPUT);
digitalWrite(relayPin, HIGH);
digitalWrite(relayPin2, HIGH);
digitalWrite(relayPin3, HIGH);
digitalWrite(relayPin4, HIGH);
pinMode(LED_INFO_RADIATOR, OUTPUT);
pinMode(LED_INFO_VAPORGENERATOR, OUTPUT);
pinMode(LED_INFO_DEAD_ZONE, OUTPUT);
Serial.println("10");
}
void decreaseHumidity(void)
{
Serial.println("2");
u8g.firstPage();
do {
u8g.setFont(u8g_font_helvB08);
u8g.drawStr(2, 27, "Zmniejszanie wilgotnosci!");
u8g.drawStr(2, 42, "Wilgotnosc :");
u8g.drawStr(80, 42, dtostrf(humidity, 5, 2, str));
u8g.drawStr(110, 42, "%");
u8g.drawStr(2, 57, "Wilg. zad.:");
u8g.drawStr(80, 57, dtostrf(valuePotentiometer, 5, 2, str));
u8g.drawStr(110, 57, "%");
} while (u8g.nextPage()) ;
}