Måling av temperatur med DS 18B20 Temp sensor

Jeg fikk tak i et kit meg mange målesensorer hos Kjell og Co og en av disse var DS 18B20 temperatur sensor. Jeg googlet litt for å finne informasjon om denne og jeg fant ut at den brukte noe man kaller for «OneWire» kommunikjasjon som medfører at man kan koble opp med mange forskjellige målesensorer på den samme inngangen.

Først så var det å koble opp, og det ble gjort slik:

Minus er til venstre, pluss midt på og signal ut til høyre. Signalet inn til Arduino ble koblet til pinne no 3. Det viste seg at jeg behøvde å installere flere programbiblioteker. Førsøke først og installere «OneWire» men tror ikke det fungerte. Fant så fram til «DallasTemperature». Valgte så at den skulle intallere alle nødvendige støttemoduller og det så ut til å fungere.

Fant et program ute på Internett på denne websiden. Brukte programmet,men ikke så mye annet fra denne websiden. Programmet så ut til å fungere greit og den printet ut «riktig temperatur».


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

// Sensor input pin
#define DATA_PIN 3
// How many bits to use for temperature values: 9, 10, 11 or 12
#define SENSOR_RESOLUTION 9
// Index of sensors connected to data pin, default: 0
#define SENSOR_INDEX 0

OneWire oneWire(DATA_PIN);
DallasTemperature sensors(&oneWire);
DeviceAddress sensorDeviceAddress;

void setup() {
  Serial.begin(9600);

  sensors.begin();
  sensors.getAddress(sensorDeviceAddress, 0);
  sensors.setResolution(sensorDeviceAddress, SENSOR_RESOLUTION);
}


void loop() {
  sensors.requestTemperatures();
  // Measurement may take up to 750ms

  float temperatureInCelsius = sensors.getTempCByIndex(SENSOR_INDEX);
  float temperatureInFahrenheit = sensors.getTempFByIndex(SENSOR_INDEX);

  Serial.print("Temperature: ");
  Serial.print(temperatureInCelsius, 4);
  Serial.print(" Celsius, ");
  Serial.print(temperatureInFahrenheit, 4);
  Serial.println(" Fahrenheit");
  delay(1000);
}

Synes at løsningen kanskje var litt unødvendig komplisert og at det kanskje ville vært bedre å brukt en målesensor som ga ut et spenningssignal, men når man nå først hadde denne sensoren, så var det jo greit å få brukt den.