www.cutedigi.com     Call Us:  303-834-7832    Email Us:  sales at cutedigi.com

Live Help
Quick Find:    
Search
    
Use keywords to find the product you are looking for.
Categories
.NET Micro Frameworks
Arduino
Arduino Kits
Arduino Shields
Book
Breakout Board
Cables
Cellular
Component
Development Tools
DMX512
EL
Ethernet
FPGA
GPS
LCD
Lighting LED
Powerline Communication
Programmer/Emulator
Project Case
Prototyping
Python-On-A-Chip
Raspberry Pi
Robotics
Security and Spy Camera
Sensor
Services
Storage
Tools
Tracking
Video
Wireless
Featured more
T Board to Bridge Arduino Shield to pcDuino with Level Shifter
T Board to Bridge Arduino Shield to pcDuino with Level Shifter
 $9.99 
Specials more
Linker Kit for Raspberry Pi / pcDuino
Linker Kit for Raspberry Pi / pcDuino
 $29.00  $24.90 
LinkSprite JPEG Color Camera Serial UART Interface (TTL level)
LinkSprite JPEG Color Camera Serial UART Interface (TTL level)
 $44.00  $39.00 
ATWIN Quad-band GPRS/GSM Shield for Arduino
ATWIN Quad-band GPRS/GSM Shield for Arduino
 $49.00  $45.00 
WiFi  RedBack 1.0 -- Arduino  yellowjacket Compatible
WiFi RedBack 1.0 -- Arduino yellowjacket Compatible
 $75.00  $64.99 
CuHead Pro WiFi/Ethernet Shield with AirPlay/DLNA Audio
CuHead Pro WiFi/Ethernet Shield with AirPlay/DLNA Audio
 $55.90  $51.00 
IOIO for Android
IOIO for Android
 $44.90  $25.99 
  Top » Catalog » Arduino » Sensor KY001
Sensor KY001   by Patrick

 

Connect the signal to Arduino digital 10, and open serial port monitor:


#include

 

/* 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();

}

 

 

 

This article was published on Monday 09 January, 2012.
Current Reviews: 0  Write Review 
Tell a friend
Tell a friend about this article:     
Shopping Cart more
0 items
Articles
New Articles (0)
All Articles (82)
Android
Arduino (30)
DMX512 (1)
FPPA (3)
GPS (6)
Industry News (5)
Linux Port Tutorial TQ2440 (24)
MCU Zone (4)
Multitouch Display (2)
PCB/SMT Assembly Service (2)
Sensors (1)
Smart Home (4)
Affiliate Program
Affiliate Program FAQ
Affiliate Log In
Cards Accepted
Cards We Accept