Go Down

Topic: Dallas Temperature, "Simple" setResolution ?? (Read 984 times) previous topic - next topic

Kalli

Hallo,
habe mal etwas mit dem DS18B20 experimentiert. Funktioniert auch bestens. Beim Sketch Simple finde ich leider keine Möglichkeit, die Auflösung über setResolution einzustellen. Wer kann helfen ?

Code: [Select]
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void)
{
 // start serial port
 Serial.begin(9600);
 Serial.println("Dallas Temperature IC Control Library Demo");

 // Start up the library
 sensors.begin();
}

void loop(void)
{
 // call sensors.requestTemperatures() to issue a global temperature
 // request to all devices on the bus
 Serial.print("Requesting temperatures...");
 sensors.requestTemperatures(); // Send the command to get temperatures
 Serial.println("DONE");
 
 Serial.print("Temperature for the device 1 (index 0) is: ");
 Serial.println(sensors.getTempCByIndex(0));  
}


Gruss Kalli

wennjo

Bin mir nicht ganz sicher, aber versuch doch mal

sensors.setResolution(insideThermometer, 9);

für 9bit-Auflösung am Anfang von void setup einzugeben. Vielleicht tut sich ja was!

Kalli

Hallo Wennjo,

danke, habe ich auch schon probiert, habe nur noch kein Ersatz für "insideThermometer" gefunden. insideThermometer wird ja im Sketch Single benutzt. Hab jetzt schon soviel neues da reingebracht, 3 Fühler, mit min und max Auswertung. Nur die Genauigkeit würde ich gern auf 9 setzen.

Gruss Kalli

wennjo

Wenn ich das richtig verstehe, musst Du DeviceAdress im Programmkopf definieren, z.B.
DeviceAdress Fuehler1, Fuehler2, Fuehler3;

Im Setup dann deren Auflösung:

sensors.setResolution(Fuehler1, 9);
sensors.setResolution(Fuehler2, 12);     usw.

und zum Auslesen:

sensors.requestTemperatures();
Temperatur1 = sensors.getTemperatur1(Fuehler1); //Temperatur1, 2 als float definieren!
Temperatur2 = sensors.getTemperatur2(Fuehler2);  usw.

Vielleicht gehts ja dann!

Go Up