Thaimicrotron.com : Home
 
 
 
การใช้งาน SHT1x Sensor Probe วัดอุณหภูมิ ความชื้น
 
   
 
 
 
Pin layout
 
 
1).PIN Assignment  
  1). Ground (GND)  
  2). Serial data DATA (DATA)  
  3). Serial Clock Input (SCK) - สัญญาณนาฬิกาสำหรับ synchronize กันระหว่างตัวแม่ กับ sensor
    โดยจะอ่านข้อมูลที่ขอบขาขึ้นของสัญญาณ  
  4). VDD (+2.4-5.5V) - เป็นสายข้อมูล โดยขานี้จะต้องต่อกับ R pullup 4.7K-10K
     
 
     
     
     
  2). Command sequence  
2.1). Transmission Start  
 
 
     
  ลักษณะเงื่อนไขของสัญญาณมีลักษณะเป็น  
  - Data เปลี่ยนจาก 1 เป็น 0      ขณะที่ SCK ลูกแรก เป็น 1  
  - Data เปลี่ยนจาก 0 เป็น 1     ขณะที่ SCK ลูกที่2 เป็น 1  
     
2.2). Connection reset sequence  
 
 
  -เมื่อขาดการติดต่อกับอุปกรณ์ ให้ส่ง SCK ไปอย่างน้อย 9 ลูก ขณะที่ Data เป็น 1แล้วตามด้วย Transmission Start  
     
  2.3). I/O Characteristics  
     
 
 
 
Timing Diagram
 
     
 
   Parameter Conditions Min Typ. Max. Unit

FSCK

SCK frequency

VDD > 4.5 V

    10

MHz

   

VDD < 4.5 V

    1

MHz

TRFO

DATA fall time

Output load 5 pF

3.5

10

20

ns

   

Output load 100 pF

30

40

200

ns

TCLH SCK high time   100     ns

TCLL

SCK low time

 

100

 

ns

TV DATA valid from     50   ns
THO Output hold time   0 10   ns

TR/TF

SCK rise/fall time

      200

ns

 
 
 
     
  3). List of commands  
 
Command Code Describtion
Reserved
0000x
Reserved
Measure Temperature
00011
Temperature measurement
Measure Humidity
00101
Humidity measurement
Status Register Read
00111
Read access to the status register (see application note)
Status Register Write
00110
Write access to the status register (see application note)
Reserved
0101x-
1110x
Reserved
Soft reset
11110
resets the chip, clears the status register to default values
    wait 11ms before next command
 
 
SHT1x list of commands
 
  การอ่านข้อมูลจาก Sensor  
 
 
 
การรับส่งข้อมูล
 
     
  ชุดคำสั่งประกอบด้วย Transmission Start+Address+Command  
  โดย Address= 000 3 +Command 5 bit  
     
     
  3.1) Measurement sequence (T and RH)  
  การอ่านค่าอุณหภูและความชื้นสัมพัทธ์  
     
  ตัวอย่างเมื่อไมโครฯ ต้องการอ่านค่า Humidity จาก sensor ซึ่งมี address =000 และคำสั่ง=00101 จะมีชุดคำสั่งดังนี้  
     
 
 
 
ลักษณะสัญญาณในการอ่านข้อมูลจาก Sensor
 
     
  เมื่อ sensor รับทราบคำสั่งแล้วจะส่ง acknowledge (ACK) ด้วยการดึงขา Data ลงเป็น 0 (เส้นทึบ)  
     
     
   
 
ลักษณะสัญญาณในการอ่านข้อมูลT/H 2 byte จาก Sensor
 
     
  -ข้อมูลของ temperature มีขนาด 14bit และ humidity มีขนาด 12bit (สามารถเปลี่ยนได้เป็น 12 และ 8 bit โดย status register.)  
  - เมื่อได้รับ acknowledge แล้วให้ไมโครฯ รอสักครู่ประมาณ >210 ms เพื่อให้ Sensor พร้อม แล้วจึงส่งสํญญาณ SCK ต่อไปอีก 2 byte สำหรับรับข้อมูล
และ 1 byte สำหรับ ข้อมูล ตรวจสอบ ความผิดพลาด (CRC)
 
     
  จากตัวอย่างจะสามารถอ่านข้อมูล 12 bit ของ Humidity (4 bit แรกเป็น 0 เสมอ) ได้เป็น
0000 1001 0011 0001= 2353 (dec)= 75.79%RH
 
  เมื่อได้ข้อมูลครบแล้วหากต้องการ CRC ให้ตอบ acknowledge ด้วยการดึงขา Data ลงเป็น 0 หากไม่ต้องการก็ข้ามขั้นตอนนี้ไป  
     
  3.2) การอ่านข้อมูลเพื่อตรวจสอบข้อผิดพลาด (CRC)  
   
 
ลักษณะสัญญาณในการอ่านข้อมูล CRC8 1byte จาก Sensor
 
     
  ส่งสํญญาณ SCK ต่อไปอีก 1 byte (8 bit)สำหรับ ข้อมูล CRC
หากสิ้นสุดการติดต่อก็ไม่ต้องตอบ acknowledge ปล่อยให้ Data เป็น 1 ไว้ เมื่อผ่าน SCK ลูกที่ 9
หากต้องการอ่านข้อมูลต่อ ให้ตอบ acknowledge ด้วยการดึงขา Data ลงเป็น 0
 
     
 
 

Celsius

Fahrenheit

SOT

d1

d2

d1

d2

14bit 5V

-40

0.01

-40

0.018

12bit 5V

-40

0.04

-40

0.072

14bit 3V

-38.4

0.0098

-37.1

0.0176

12bit 3V

-38.4

0.0392

-37.1

0.0704

 
 
ตารางหาค่า d1,d2 ขนาด 14 bit,12 bit ที่แรงดัน 5 และ 3V
 
     
  3.3) การเปลี่ยนข้อมูล digital  
  การเปลี่ยนข้อมูล digital เป็นข้อมูล temperature  
  ค่าของข้อมูล temperature มีลักษณะเป็นเชิงเส้นสามารถคำนวนได้โดยใช้สูตร  
     
 
3.3.1)  
  เมื่อ SOT = Serial Output Temperature d1,d2 เป็น ค่าคงที่เชิงเส้น  
     
 
     
  เช่นอ่านข้อมูล digital ขนาด14 bit ได้ SOT =011010 11111111B = 06911 dec  
  ที่แรงดัน 5 V เมื่อต้องการอ่านค่าเป็นองศา Celsius จะได้ค่า d1= -40 ,d2 = 0.01  
  ผลการคำนวน temperature = 29.11C  
     
  การเปลี่ยนข้อมูล digital เป็นข้อมูล humidity  
  ค่าของข้อมูล humidity มีลักษณะไม่เป็นเชิงเส้น สามารถคำนวนได้ตามขั้นตอนดังนี้  
     
 
3.3.2) คำนวนหา RH-Linear โดยใช้สูตร  
   
     
  เมื่อ RH = Serial Output humidity แบบ Linearและ c1,c2,c3 มีค่าเป็น  
   
     
3.3.3) เมื่อได้ ค่า RH-linear และ Tc (จาก 3.3.1) แล้ว หาค่า RH true โดยใช้สูตร  
   
   
     
     
 
     
  เช่นอ่านข้อมูล digital ขนาด 12 bit ได้ RH-linear = 0110 11111111B =1791 dec  
  ที่แรงดัน 5 V อ่านค่า Tc = 29.11C (จาก 3.3.1) เมื่อต้องการหาค่า humidity จะได้ค่า c1= -4 ,c2 = 0.0405 ,c3 = -0.0000028  
  ผลการคำนวนค่า humidity = 60.18%  
     
  ตัวอย่างการใช้งานโปรแกรม  
 
ศมิทธิ์ เอมสมบัติ