|
|
(17 mellanliggande sidversioner av 2 användare visas inte) |
Rad 1: |
Rad 1: |
| == Om sensorn == | | ==Bild== |
| [[Fil:KY001.JPG]] | | [[Fil:KY001.JPG]] |
| Lorem ipsum
| |
|
| |
|
| == Koppling == | | ==Om sensorn== |
| Lorem ipsum
| | TEMP 18B20 är en vanligt förekommande temperatursensor som använder [http://playground.arduino.cc/Learning/OneWire 1-wire protokollet]. |
| | Man behöver [http://arduino.cc/en/Guide/Libraries installera ett bibliotek] för att använda det, biblioteket hittar du [http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip här] |
|
| |
|
| | ==Synonymer== |
| | KEYES Temp Module, KY001, Temperature Sensor Module, 01 ARDUINO DS18b20 sensor module |
|
| |
|
| == Arduino exempelkod == | | ==Koppling== |
| | När man kopplar in sensorn behöver man en sk. pullup på signalbussen, det funkar att sätta en 4,7kiloohms resistor mellan signal och +5v |
|
| |
|
| Connect the signal to Arduino digital 10, and open serial port monitor:
| | ==Arduino exempelkod== |
| | När du installerat biblioteket kan du öppna exempelsketchen DS18x20_Temperature under File/Examples/OneWire/ |
|
| |
|
| <pre>
| | ==Bibliotek== |
|
| |
|
| | *[[Arduino]] |
| | *[[C]] |
|
| |
|
| #include
| | [[Kategori:Elektronikrummet]] |
| | |
|
| |
| | |
| /* DS18S20 Temperature chip i/o
| |
| | |
|
| |
| | |
| */
| |
| | |
|
| |
| | |
| OneWire ds(10); // on pin 10
| |
| | |
|
| |
| | |
| void setup(void) {
| |
| | |
| // initialize inputs/outputs
| |
| | |
| // start serial port
| |
| | |
| Serial.begin(9600);
| |
| | |
| }
| |
| | |
|
| |
| | |
|
| |
| | |
|
| |
| | |
| void loop(void) {
| |
| | |
| byte i;
| |
| | |
| byte present = 0;
| |
| | |
| byte data[12];
| |
| | |
| byte addr[8];
| |
| | |
| int Temp;
| |
| | |
| if ( !ds.search(addr)) {
| |
| | |
| //Serial.print("No more addresses.n");
| |
| | |
| ds.reset_search();
| |
| | |
| return;
| |
| | |
| }
| |
| | |
|
| |
| | |
| Serial.print("R="); //R=28 Not sure what this is
| |
| | |
| for( i = 0; i < 8; i++) {
| |
| | |
| Serial.print(addr[i], HEX);
| |
| | |
| Serial.print(" ");
| |
| | |
| }
| |
| | |
|
| |
| | |
| if ( OneWire::crc8( addr, 7) != addr[7]) {
| |
| | |
| Serial.print("CRC is not valid!n");
| |
| | |
| return;
| |
| | |
| }
| |
| | |
|
| |
| | |
| if ( addr[0] != 0x28) {
| |
| | |
| Serial.print("Device is not a DS18S20 family device.n");
| |
| | |
| return;
| |
| | |
| }
| |
| | |
|
| |
| | |
| ds.reset();
| |
| | |
| ds.select(addr);
| |
| | |
| ds.write(0x44,1); // start conversion, with parasite power on at the end
| |
| | |
|
| |
| | |
| delay(1000); // maybe 750ms is enough, maybe not
| |
| | |
| // we might do a ds.depower() here, but the reset will take care of it.
| |
| | |
|
| |
| | |
| present = ds.reset();
| |
| | |
| ds.select(addr);
| |
| | |
| ds.write(0xBE); // Read Scratchpad
| |
| | |
|
| |
| | |
| Serial.print("P=");
| |
| | |
| Serial.print(present,HEX);
| |
| | |
| Serial.print(" ");
| |
| | |
| for ( i = 0; i < 9; i++) { // we need 9 bytes
| |
| | |
| data[i] = ds.read();
| |
| | |
| Serial.print(data[i], HEX);
| |
| | |
| Serial.print(" ");
| |
| | |
| }
| |
| | |
| Temp=(data[1]<<8)+data[0];//take the two bytes from the response relating to temperature
| |
| | |
|
| |
| | |
| Temp=Temp>>4;//divide by 16 to get pure celcius readout
| |
| | |
|
| |
| | |
| //next line is Fahrenheit conversion
| |
| | |
| Temp=Temp*1.8+32; // comment this line out to get celcius
| |
| | |
|
| |
| | |
| Serial.print("T=");//output the temperature to serial port
| |
| | |
| Serial.print(Temp);
| |
| | |
| Serial.print(" ");
| |
| | |
|
| |
| | |
|
| |
| | |
| Serial.print(" CRC=");
| |
| | |
| Serial.print( OneWire::crc8( data, 8), HEX);
| |
| | |
| Serial.println();
| |
| | |
| }
| |
| | |
| </pre>
| |
| | |
| == Bibliotek ==
| |
| * [[Arduino]]
| |
| * [[C]]
| |
Bild
Om sensorn
TEMP 18B20 är en vanligt förekommande temperatursensor som använder 1-wire protokollet.
Man behöver installera ett bibliotek för att använda det, biblioteket hittar du här
Synonymer
KEYES Temp Module, KY001, Temperature Sensor Module, 01 ARDUINO DS18b20 sensor module
Koppling
När man kopplar in sensorn behöver man en sk. pullup på signalbussen, det funkar att sätta en 4,7kiloohms resistor mellan signal och +5v
Arduino exempelkod
När du installerat biblioteket kan du öppna exempelsketchen DS18x20_Temperature under File/Examples/OneWire/
Bibliotek