Stap 5: Arduino, CODE
#include < OneWireTempSensor.h >#include < OneWire.h >
#include < LiquidCrystal.h >
int DS18S20_Pin = 7; DS18S20 signaal pin op digitale 7 door rahulmitra
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
Temperatuur chip i/o
Privacy ds(DS18S20_Pin); op digitale pin 7 door rahulmitra
ongeldig setup(void) {}
Serial.begin(9600);
LCD.begin (16, 2);
Een bericht op het LCD-scherm afdrukt.
LCD.Print ("Rahul Mitra");
}
ongeldig loop(void) {}
zweven temperatuur = getTemp();
Serial.println(Temperature);
lcd.setCursor (0, 1);
LCD.Print ("Temp:");
LCD.Print(Temperature);
LCD.Print ("* C");
delay(100); alleen hier te vertragen de output zodat het makkelijker is om te lezen
}
float getTemp() {}
geeft als resultaat de temperatuur van een DS18S20 in graden Celsius
bytegegevens [12];
byte addr [8];
Als (! ds.search(addr)) {}
geen meer sensoren op de keten, reset zoeken
DS.reset_search();
Return-1000;
}
Als (OneWire::crc8 (addr, 7)! = addr[7]) {}
Serial.println ("CRC is niet geldig!");
Return-1000;
}
Als (addr [0]! = 0x10 & & addr [0]! = 0x28) {}
Serial.Print ('apparaat wordt niet herkend');
Return-1000;
}
DS.reset();
DS.Select(addr);
DS.write(0x44,1); Start conversie, met kracht van de parasiet op eind
byte aanwezig = ds.reset();
DS.Select(addr);
DS.write(0xBE); Lees Kladblok
voor (int i = 0; ik < 9; i ++) {/ / moeten we 9 bytes
gegevens [i] = ds.read();
}
DS.reset_search();
byte MSB = data [1];
byte LSB = data [0];
zweven tempRead = ((MSB << 8) | LSB); met behulp van twee compliment
zweven TemperatureSum = tempRead / 16;
Return TemperatureSum;
}