Pages: [1]   Go Down
Author Topic: DS18B20 Wert in Variable Speichern  (Read 523 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo, ich habe hier mehrere Temperatur Sensoren die die ich Auslese, ich möchte jetzt eine if schleife machen wenn ein Wert überschriten ist leider weis ich nicht wie ich den Wert in eine Variable abspeichern kann.

Hier den code den ich benutze:

Quote
#include <OneWire.h>
#include <DallasTemperature.h>


#define ONE_WIRE_BUS 30                     // OneWire Bus Pin 8

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);


DeviceAddress Temp1 = {0x28, 0x9D, 0x09, 0x52, 0x04, 0x00, 0x00, 0x57};
DeviceAddress Temp2 = {0x28, 0x9F, 0xE5, 0x51, 0x04, 0x00, 0x00, 0x4A};
DeviceAddress Temp3 = {0x28, 0xE0, 0xF6, 0x51, 0x04, 0x00, 0x00, 0xC4};

void setup(void)
{
  Serial.begin(9600);
 
  sensors.begin();
  sensors.setResolution(Temp1, 10);          // Auflösung auf 10 bit
  sensors.setResolution(Temp2, 10);
  sensors.setResolution(Temp3, 10);
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Fehler bei Temperatur abfrage");
  } else {
    Serial.print("C: ");
    Serial.print(tempC);
  }
}

void loop(void)
{
 
  Serial.print("Temperatur abfrage...\n\r");
  sensors.requestTemperatures();
 
  Serial.print("Temp1 ist: ");
  printTemperature(Temp1);
  Serial.print("\n\r");
  Serial.print("Temp2 ist: ");
  printTemperature(Temp2);
  Serial.print("\n\r");
  Serial.print("Temp3 ist: ");
  printTemperature(Temp3);
  Serial.print("\n\r");
  Serial.print("\n\r\n\r");
}
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21936
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich verstehe Deine Frage nicht, Im Sketch wird das ja schon gemacht. Du mußt nur die richtigen Werte reinschreiben.

Code:
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Fehler bei Temperatur abfrage");
    }

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wenn ich jetzt aber eine if schleife machen möchte funktioniert das nicht...

z.B.

Quote
if (Temp1 > 20)
{ digitalWrite(Temphoch,HIGH); }
else
{ digitalWrite(Temphoch,LOW); }
Logged

Offline Offline
Sr. Member
****
Karma: 10
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
woher weißt du, das es nicht funktioniert?
was ist denn Temphoch, wo hast du das im Code oben deklariert?
Oder hab ich was im Code übersehen?
gruss
Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

wenn ich jetzt aber eine if schleife machen möchte funktioniert das nicht...

z.B.

Quote
if (Temp1 > 20)
{ digitalWrite(Temphoch,HIGH); }
else
{ digitalWrite(Temphoch,LOW); }
Das kann so auch nicht funktionieren.
"Temp1" ist ja die Geräteadresse, die Temparatur steht in "TempC".
Logged

_______
Manfred

Pages: [1]   Go Up
Jump to: