Sensores Térmicos & Humidade

Produtos visualizados

Electronic Brick - DS18B20 1 - Wire Digital Thermometer Module

BE15000609

Novo produto

DS18B20 is a single-bus digital temperature sensor with features of ultra-small size, wide range of applicable voltage and measurable temperature and high resolution.

Mais detalhes

3,99 € com IVA

Adicionar à Lista de desejos

Mais informação

Overview

What is an electronic brick? An electronic brick is an electronic module which can be assembled like Lego bricks simply by plugging in and pulling out. Compared to traditional universal boards and circuit modules assembled with various electronic components, electronic brick has standardized interfaces, plug and play, simplifying construction of prototype circuit on one’s own. There are many types of electronic bricks, and we provide more than twenty types with different functions including buttons, sensors, Bluetooth modules, etc, whose functions cover from sensor to motor drive, from Ethernet to wireless communication via Bluetooth, and so on. We will continue to add more types to meet the various needs of different projects.

DS18B20 is a single-bus digital temperature sensor with features of ultra-small size, wide range of applicable voltage and measurable temperature and high resolution, etc. , which can be applied to temperature control, industrial systems, consumer products, thermometers or any thermal measurement system.

 

Documents

Please visit our wiki page for more info about this product. It will be appreciated if you can help us improve the documents by correcting the errors, adding more demo codes or tutorials.

 

Technical support

For technical support, please open a ticket on Itead Support System.

 

Additional Information

Link Wiki

No

Brick Interface

3PIN

Brick Power Supply

5V

Board Size

33.2 × 14 × 1.6mm

LED Color

No

Weight

15.0000

 

Code:

Connect S port of DS18B20 electronic brick to D0 port of Arduino board, and we will use the following program to read register information and temperature value.

 #include 

 // OneWire DS18S20, DS18B20, DS1822 Temperature Example
 // http://www.pjrc.com/teensy/td_libs_OneWire.html
 // The DallasTemperature library can do all this work for you!
 // http://milesburton.com/Dallas_Temperature_Control_Library

 OneWire  ds(10);  // on pin 10

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

 void loop(void) {
 byte i;
 byte present = 0;
 byte type_s;
 byte data[12];
 byte addr[8];
 float celsius, fahrenheit;
  
 if ( !ds.search(addr)) {
   Serial.println("No more addresses.");
   Serial.println();
   ds.reset_search();
   delay(250);
   return;
 }
  
 Serial.print("ROM =");
 for( i = 0; i < 8; i++) {
   Serial.write();
   Serial.print(addr[i], HEX);
 }

 if (OneWire::crc8(addr, 7) != addr[7]) {
     Serial.println("CRC is not valid!");
     return;
 }
 Serial.println();
 
 // the first ROM byte indicates which chip
 switch (addr[0]) {
   case 0x10:
     Serial.println("  Chip = DS18S20");  // or old DS1820
     type_s = 1;
     break;
   case 0x28:
     Serial.println("  Chip = DS18B20");
     type_s = 0;
     break;
   case 0x22:
     Serial.println("  Chip = DS1822");
     type_s = 0;
     break;
   default:
     Serial.println("Device is not a DS18x20 family device.");
     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("  Data = ");
 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(" ");
 }
 Serial.print(" CRC=");
 Serial.print(OneWire::crc8(data, 8), HEX);
 Serial.println();

 // convert the data to actual temperature

 unsigned int raw = (data[1] << 8) | data[0];
 if (type_s) {
   raw = raw << 3; // 9 bit resolution default
   if (data[7] == 0x10) {
     // count remain gives full 12 bit resolution
     raw = (raw & 0xFFF0) + 12 - data[6];
   }
 } else {
   byte cfg = (data[4] & 0x60);
   if (cfg == 0x00) raw = raw << 3;  // 9 bit resolution, 93.75 ms
   else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms
   else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms
   // default is 12 bit resolution, 750 ms conversion time
 }
 celsius = (float)raw / 16.0;
 fahrenheit = celsius * 1.8 + 32.0;
 Serial.print("  Temperature = ");
 Serial.print(celsius);
 Serial.print(" Celsius, ");
 Serial.print(fahrenheit);
 Serial.println(" Fahrenheit");
 }

Acessórios