Go Down

Topic: DS18b20 funktioniert nur unter 33 Sekunden (Read 149 times) previous topic - next topic

Tiff48317

Sep 15, 2018, 10:05 pm Last Edit: Sep 15, 2018, 10:10 pm by Tiff48317
Ich habe noch immer ein Problem mit meiner Aquariumsteuerung.
Nach dem Neuaufbau und den Erweiterungen nach euren Angaben funktioniert fast alles einwandfrei.
Auuußer....

Die DS18b20 Messung im OneWire Betrieb.

Aber mal von vorne:
Arduino Uno R3 Clone mit zwei DS18b20 im Onewire Betrieb.
Die Fritzing-Skizze zeigt die komplette Schaltung, ich habe aber den Sketch auf den nicht funktionierenden Teil herunter gebrochen.

Folgender Fehler tritt auf:
Wenn ich den Messintervall auf größer 32767 Millis setze, funktioniert der Sketch nicht mehr.
Hat jemand einen Schimmer warum?

Code: [Select]

// Temperatursensor DS18S20
//*******************************************
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 12
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float Toben = 0;
float Tunten = 0;
float Tobenk = 0;
float Tuntenk = 0;
unsigned long Tempmess = 0;
int Tempzeit = 32768;
bool TempM = 0;
float KorrUnten = 0;  //Sensor Korrekturwert
float KorrOben = 0;   //Sensor Korrekturwert


//*******************************************



void setup() {
sensors.begin();           // Temperatursensor DS18S20
sensors.setResolution(12); // Temperatursensor DS18S20

Serial.begin(9600);
}

void loop() {
 //*******************************************************************
// Temperatursensor DS18S20
//*******************************************************************
if(TempM == 0){ 
  sensors.requestTemperatures();
  float Tobenk = (sensors.getTempCByIndex(1));
  float Tuntenk = (sensors.getTempCByIndex(0));
  Toben = Tobenk + KorrOben;
  Tunten = Tuntenk + KorrUnten;
  Tempmess = millis();
  TempM = 1;
 Serial.println(Toben);
 Serial.println(Tunten);
  }
if(millis()- Tempmess > Tempzeit){
  TempM = 0;
}

}


/edit
*haut sich vor die Stirn* int.....ich Vollidiot....int kann nur 32767, richtig?
__________________________________________________
Eine präzise gestellte Frage enthält meist bereits 80% der Antwort.
Die mit dem Postit vor der Stirn....

Serenifly

Für Zeiten immer unsigned long nehmen. Was willst du da mit einem vorzeichenbehafteten Datentyp

Go Up