03-10-2017, 12:47
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);
}
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);
}