• 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
Podwójny termostat
#1
Od nie dawna zajmuję się Arduino ale do tej pory dawałem jakoś radę. Teraz utknąlem w miejscu. Robie coś w rodzaju termostatu, pomiar z wyświetlaniem dwóch temperatur i załączeniem wyjścia pogiem na stałe ustawionym. Mój problem polega na tym że nie działa mi porównanie temperatury . Po kompilacji mam ostrzeżenie 
 warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]
 {  if ( termometrWewnetrzny >24) { 
Próbowałem zapisania temperatury jako zmiennej lecz tęż mam błąd.
Szanowne forum proszę mnie "oświecić" z góry dzięki za pomoc.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h> //Dołączenie bilbioteki
 
OneWire oneWire(A5); //Podłączenie do A5
DallasTemperature sensors(&oneWire); //Przekazania informacji do biblioteki
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza

DeviceAddress termometrZewnetrzny = { 0x28, 0x2A, 0x16, 0xBB, 0x8, 0x0, 0x0, 0xA7 }; //28 2A 16 BB 8 0 0 A7
DeviceAddress termometrWewnetrzny = { 0x28, 0xFF, 0x6F, 0x8, 0xC3, 0x16, 0x3, 0x39 }; //28 FF 6F 8 C3 16 3 39
 

 
void setup(void) {
  Serial.begin(9600);
  sensors.begin(); //Inicjalizacja czujnikow
  lcd.begin(16, 2); //Deklaracja typu
  lcd.clear();
    pinMode(7, OUTPUT); //Dioda jako wyjście
  digitalWrite(7, LOW); //Wyłączenie diody
   
}
 double odczyt;
 
void loop(void) { 
  sensors.requestTemperatures(); //Pobranie temperatury czujnika
  lcd.setCursor(0, 0); //Ustawienie kursora
  lcd.print(sensors.getTempC(termometrWewnetrzny));
  lcd.println("'C W DOMU         ");
  lcd.setCursor(0, 1); //Ustawienie kursora w odpowiednim momencie
  lcd.print(sensors.getTempC(termometrZewnetrzny));   
  lcd.println("'C ZA OKNEM         "); 
  sensors.requestTemperatures(); //Pobranie temperatury czujnika
 {  if ( termometrWewnetrzny >24) { 
    digitalWrite(7, HIGH); //Włącz diodę
  } else { //Jeśli warunek nie został spełniony
    delay(250); 
    digitalWrite(7, LOW); //Wyłącz diodę
  }

 }
 delay(250); 
}
 
Odpowiedź
#2
Niestety w pewnym momencie nie wystarczy kopiuj/wklej. Trzeba rozumieć co się w programie dzieje.
Temperaturę wyświetlasz :
Kod:
 lcd.print(sensors.getTempC(termometrWewnetrzny));

a porównujesz:
Kod:
 if ( termometrWewnetrzny >24)

Zastanów się co tu jest nie tak.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
(04-10-2017, 12:40)namok napisał(a): Niestety w pewnym momencie nie wystarczy kopiuj/wklej. Trzeba rozumieć co się w programie dzieje.
Temperaturę wyświetlasz :
Kod:
 lcd.print(sensors.getTempC(termometrWewnetrzny));

a porównujesz:
Kod:
 if ( termometrWewnetrzny >24)

Zastanów się co tu jest nie tak.
 
Odpowiedź
#4
Dzięki sam już doszedłem, wszystko działa pozdrawiam.
 
Odpowiedź
#5
(08-10-2017, 20:42)norbii01 napisał(a): Dzięki sam już doszedłem, wszystko działa pozdrawiam.

Jeśli coś Ci się udało to możesz ten kod prawidłowo działający zamieścić
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości