• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zawieszanie wyświetlacza OLED
#1
Witam wszystkich. Napisałem kod programu który odpowiada za układ regulacji trójstawny(trójpołożeniowy). Wszystko działa jak należy jednak wyświetlacz OLED zawiesza się w momencie strefy nieczułości - to znaczy : gdy wartość zadaną ustawię na np 70% a wartość wilgotności wynosi 72% to według warunku " else {}" nie powinno działać żadne urządzenie , tylko dioda LED. Tak też się dzieje jednak po chwili gdy wartość zadaną ustawiam na np.80% wartość na wyświetlaczu nie zmienia się , mimo iż przekaźnik działa jak należy. Wyświetlacz zaczyna znowu działać w momencie odłączenia i ponownego załączenia arduino do prądu. Zawieszanie wyświetlacza występuje tylko i wyłącznie właśnie w tej strefie nieczułości. Czy ktoś wie czemu tak się dzieje?

Kod programu:
Kod:
#include "DHT.h"                          // biblioteka DHT
#include "U8glib.h"                       // bibioteka OLED I2C

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);  // I2C / TWI

#define DHTPIN 2                          // definicja PIN dla DHT
#define DHTTYPE DHT22                     // DHT 22
DHT dht(DHTPIN, DHTTYPE, 6);                  // deklaracja DHT
char str[10];                         // znak stopni celsujsza i procent
int WILG;                           // zmienna wilgotnosc
float TEMP;  // zmienna temperatura w stopniach C

unsigned long aktualnyCzas = 0; // do millis
unsigned long zapamietanyCzas = 0;  // do millis

int relay_pin = 8;                // przekaznik
int relay_pin2 = 12;              // przekaznik
int relay_pin3 = 7;                // przekaznik
int relay_pin4 = 9;
#define led_info_promiennik 4         // dioda od promiennika
#define led_info_generator 13      // dioda od generatora pary
#define led_info_nic 1

int histereza=2;

int potencjometr = A0;                // odczyt napiecia z potentcjometru pinem analogowym 0
int wartosc = 0;                       // zmienna przechowujaca wartosc napiecia odczytanego
int dane[5]; // do potencjometru do sredniej
int i=0;  // do potencjometru do sredniej
int srednia;  // do potencjometru do sredniej
 
void setup()
{
dht.begin();                          // inicjalizacja DHT
pinMode(potencjometr, INPUT); //pin A0 (pot) jako wejście
pinMode(relay_pin, OUTPUT);
pinMode(relay_pin2, OUTPUT);
pinMode(relay_pin3, OUTPUT);
pinMode(relay_pin4, OUTPUT);
digitalWrite(relay_pin, HIGH);
digitalWrite(relay_pin2, HIGH);
digitalWrite(relay_pin3, HIGH);
digitalWrite(relay_pin4, HIGH);
pinMode(led_info_promiennik, OUTPUT);
pinMode(led_info_generator, OUTPUT);
pinMode(led_info_nic, OUTPUT);
}

// glowna petla programu

void loop() {
aktualnyCzas = millis();

if (aktualnyCzas - zapamietanyCzas >= 50UL) {
   //Zapamietaj aktualny czas
   zapamietanyCzas = aktualnyCzas;
}
                     
WILG = dht.readHumidity();                     // odczytaj wilgotnosc
TEMP = dht.readTemperature();                  // odczytaj temp
wartosc = analogRead(A0);
dane[i]=wartosc; // do sredniej potencjoemtru
i++;
if(i==5){
i=0;
}
for(int j=0;j<5;j++){
 srednia+=dane[j]; // do sredniej potencjoemtru
}
srednia/=5.0; // do sredniej potencjoemtru
wartosc  = map(wartosc, 0, 1023, 0, 100);           // skalowanie od 0 do 100            

// petla obrazu
u8g.firstPage();              
do {
u8g.setFont(u8g_font_helvB08);               // czcionka
u8g.drawStr( 2, 27, "Wilgotnosc :");            
u8g.drawStr( 80, 27, dtostrf(WILG, 5, 2, str));  
u8g.drawStr( 110, 27, "%");                      

u8g.drawStr( 2, 42, "Temperatura :");            
u8g.drawStr( 80, 42, dtostrf(TEMP, 5, 2, str));
u8g.drawStr( 110, 42, "\260C");

u8g.drawStr( 2, 57, "Wilg. zad.:");            
u8g.drawStr( 80, 57, dtostrf(wartosc, 5, 2, str));
u8g.drawStr( 110, 57, "%");
} while( u8g.nextPage() );                       // koniec petli obrazu

// PETLA OD WARUNKOW
if(wartosc>(WILG+2)) {

digitalWrite(relay_pin2, HIGH); //Wyłączenie Promiennika
digitalWrite(relay_pin3, LOW); // ON wentylatora
digitalWrite(relay_pin4, LOW);  //ON wentylatora
digitalWrite(relay_pin, LOW);  // Wlaczenie GENERATORA PARY  
digitalWrite(led_info_generator, HIGH); //Włączenie diody od GENERATORA
digitalWrite(led_info_promiennik, LOW); //WYLACZENIE diody od PROMIENNIKA
digitalWrite(led_info_nic, LOW); // Wyłączenie diody od Strefy Nieczułości
}
else if(wartosc<(WILG-2)){


digitalWrite(relay_pin3, HIGH);  // OFF wentylatorow
digitalWrite(relay_pin4, HIGH);  // OFF wentylatorów
digitalWrite(relay_pin, HIGH);  // Wylaczenie GENERATORA
digitalWrite(relay_pin2, LOW); // Wlaczenie Promiennika
digitalWrite(led_info_promiennik, HIGH); //Włączenie diody od PROMIENNIKA
digitalWrite(led_info_generator, LOW); //Wyłączenie diody od GENERATORA
digitalWrite(led_info_nic, LOW); // Wyłączenie diody od Strefy Nieczułosci
}
else { // tolerancja 2 stopni odnosnie rownosci ze wzgledu na te wahania potencjometru

digitalWrite(relay_pin, HIGH); // Wyłaczenie generatora
digitalWrite(relay_pin2, HIGH); // Wyłączenie promiennika
digitalWrite(relay_pin3, HIGH);  // OFF wentylatorow
digitalWrite(relay_pin4, HIGH);  // OFF wentylatorów
digitalWrite(led_info_promiennik, LOW); //WYLACZENIE diody od PROMIENNIKA
digitalWrite(led_info_generator, LOW); //WYLACZENIE diody od GENERATORA
digitalWrite(led_info_nic, HIGH); // Włączenie diody od Strefy Nieczułosci
}

}
 
Odpowiedź
  


Wiadomości w tym wątku
Zawieszanie wyświetlacza OLED - przez Automatyk231 - 25-10-2018, 11:01
RE: Zawieszanie wyświetlacza OLED - przez es2 - 25-10-2018, 11:29
RE: Zawieszanie wyświetlacza OLED - przez es2 - 25-10-2018, 13:02
RE: Zawieszanie wyświetlacza OLED - przez es2 - 25-10-2018, 13:22
RE: Zawieszanie wyświetlacza OLED - przez es2 - 25-10-2018, 14:07
RE: Zawieszanie wyświetlacza OLED - przez error105 - 25-10-2018, 14:44
RE: Zawieszanie wyświetlacza OLED - przez es2 - 25-10-2018, 18:28
RE: Zawieszanie wyświetlacza OLED - przez es2 - 26-10-2018, 14:20
RE: Zawieszanie wyświetlacza OLED - przez error105 - 25-10-2018, 20:43
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 25-10-2018, 23:52
RE: Zawieszanie wyświetlacza OLED - przez error105 - 26-10-2018, 10:52
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 26-10-2018, 11:47
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 26-10-2018, 12:57
RE: Zawieszanie wyświetlacza OLED - przez error105 - 26-10-2018, 13:37
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 26-10-2018, 14:03
RE: Zawieszanie wyświetlacza OLED - przez es2 - 26-10-2018, 16:36
RE: Zawieszanie wyświetlacza OLED - przez es2 - 27-10-2018, 16:28
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 26-10-2018, 16:51
RE: Zawieszanie wyświetlacza OLED - przez es2 - 26-10-2018, 17:02
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 26-10-2018, 17:39
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 28-10-2018, 05:26
RE: Zawieszanie wyświetlacza OLED - przez es2 - 28-10-2018, 13:37
RE: Zawieszanie wyświetlacza OLED - przez es2 - 28-10-2018, 14:12
RE: Zawieszanie wyświetlacza OLED - przez es2 - 28-10-2018, 14:57
RE: Zawieszanie wyświetlacza OLED - przez es2 - 28-10-2018, 23:58
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 29-10-2018, 02:20
RE: Zawieszanie wyświetlacza OLED - przez es2 - 29-10-2018, 12:04
RE: Zawieszanie wyświetlacza OLED - przez es2 - 29-10-2018, 12:38
RE: Zawieszanie wyświetlacza OLED - przez es2 - 29-10-2018, 13:05
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 29-10-2018, 20:42
RE: Zawieszanie wyświetlacza OLED - przez es2 - 29-10-2018, 21:05
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 29-10-2018, 22:10
RE: Zawieszanie wyświetlacza OLED - przez es2 - 30-10-2018, 01:08
RE: Zawieszanie wyświetlacza OLED - przez error105 - 30-10-2018, 00:22
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 30-10-2018, 08:46
RE: Zawieszanie wyświetlacza OLED - przez kaczakat - 30-10-2018, 14:15
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 00:55
RE: Zawieszanie wyświetlacza OLED - przez es2 - 03-11-2018, 10:30
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 11:05
RE: Zawieszanie wyświetlacza OLED - przez es2 - 03-11-2018, 11:12
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 11:23
RE: Zawieszanie wyświetlacza OLED - przez es2 - 03-11-2018, 11:33
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 12:57
RE: Zawieszanie wyświetlacza OLED - przez es2 - 03-11-2018, 13:11
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 13:23
RE: Zawieszanie wyświetlacza OLED - przez es2 - 03-11-2018, 14:29
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 14:49
RE: Zawieszanie wyświetlacza OLED - przez es2 - 03-11-2018, 15:52
Zawieszanie wyświetlacza OLED - przez wchpikus - 03-11-2018, 15:59

Skocz do:


Przeglądający: 2 gości