ex-10ex-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ...

20
EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I 2 C 1 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I 2 C AX-2000/AX-2000 Plus ชุดทดลองการเชื่อมตอคอมพิวเตอรกับอุปกรณภายนอก เปนชุดทดลองที่จัดเตรียมขึ้นเพื่อตอบสนองความตองการเรียนรูของผูสนใจดาน PC Interfacing โดย จะเนนไปที่การเชื่อมตอผานพอรตขนานหรือพอรตเครื่องพิมพและพอรตอนุกรมของคอมพิวเตอรพีซีเปนหลัก ในชุดทดลอง AX-2000 ไดจัดจําหนายใน 2 รูปแบบคือ เปนชุดสมบูรณประกอบดวยบอรดทดลอง 9-12 บอรด*, สเต็ปเปอรมอเตอร , อะแดปเตอร และหนังสือปฏิบัติการอีก 2-3 เลม* กับชุดแยก ซึ่งจะนําบอรดทดลองทั้งหมด รวมทั้งหนังสือมาแยกจําหนายสําหรับผูสนใจเฉพาะดาน ดังนั้นสําหรับผูที่จัดซื้อในชุดแยกนี้สามารถติดตาม บอรดทดลองในอนุกรมนี้ไดอยางตอเนื่องรวมถึงหนังสือคูมือไดจากตัวแทนจําหนายของบริษัท อินโนเวตีฟ เอ็ก เพอริเมนต จํากัด ในสวนของแผนดิสกโปรแกรมตัวอยางจะบรรจุอยูในชุดของ P-Board และ S-Board เทานั้นในกรณีที่จัด ซื้อแบบแยก สวนในชุดสมบูรณไดจัดเตรียมไวใหเรียบรอยแลว * บอรดที่ใชในการทดลองมี 12 บอรดและหนังสือ 3 เลมในรุAX-2000 Plus * บอรด EX-10 นี้มีจัดใหพรอมในชุดทดลองรุAX-2000 Plus เทานั้น (C) Innovative Experiment Co.,Ltd. บอรดที่ใชงานรวมกันเพื่อทําการทดลองเพิ่มเติม (จําหนายแยก) P-Board บอรดเชื่อมตอพอรตขนาน , S-Board บอรดเชื่อมตอพอรตอนุกรม EX-10 คุณสมบัติทางเทคนิค l ใชไอซี DS1621 ที่วัดอุณหภูมิไดตั้งแต -55 C ถึง +125 C สําหรับตัวบอรดสามารถใชงานในชวง 0-50 C l สงขอมูลอุณหภูมิผานระบบบัส I 2 C l ตั้งคาจุดทริกอุณหภูมิสูงและตํ่า เมื่อทํางานในโหมด เทอรโมสตัตได l มีเอาตพุตแสดงผลการทํางานในโหมดเทอรโมสตัต พรอมวงจรขับ LED, ลําโพงเปยโซ และรีเลย โดยเลือก ดวยจั๊มเปอร l สามารถตอพวงไดรวม 8 บอรด l เชื่อมตอกับ P-Board และ S-Board ผานทางแจก I 2 C BUS

Upload: others

Post on 25-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 1

บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

AX-2000/AX-2000 Plus ชดุทดลองการเชือ่มตอคอมพวิเตอรกับอปุกรณภายนอกเปนชุดทดลองที่จัดเตรียมข้ึนเพ่ือตอบสนองความตองการเรียนรูของผูสนใจดาน PC Interfacing โดย

จะเนนไปที่การเชื่อมตอผานพอรตขนานหรือพอรตเครื่องพิมพและพอรตอนุกรมของคอมพิวเตอรพีซีเปนหลักในชดุทดลอง AX-2000 ไดจดัจาํหนายใน 2 รปูแบบคอื เปนชดุสมบูรณประกอบดวยบอรดทดลอง 9-12 บอรด*,สเตป็เปอรมอเตอร, อะแดปเตอร และหนงัสือปฏิบัติการอีก 2-3 เลม* กับชุดแยก ซึ่งจะนําบอรดทดลองทั้งหมดรวมทั้งหนังสือมาแยกจําหนายสําหรับผูสนใจเฉพาะดาน ดังนั้นสําหรับผูที่จัดซื้อในชุดแยกนี้สามารถติดตามบอรดทดลองในอนกุรมนีไ้ดอยางตอเนือ่งรวมถึงหนงัสอืคูมอืไดจากตวัแทนจาํหนายของบริษัท อินโนเวตีฟ เอ็กเพอริเมนต จํากัด

ในสวนของแผนดสิกโปรแกรมตวัอยางจะบรรจอุยูในชดุของ P-Board และ S-Board เทานัน้ในกรณทีีจ่ดัซือ้แบบแยก สวนในชุดสมบูรณไดจัดเตรียมไวใหเรียบรอยแลว* บอรดทีใ่ชในการทดลองม ี12 บอรดและหนังสือ 3 เลมในรุน AX-2000 Plus* บอรด EX-10 นีม้จีดัใหพรอมในชดุทดลองรุน AX-2000 Plus เทานัน้

(C) Innovative Experiment Co.,Ltd.

บอรดท่ีใชงานรวมกันเพ่ือทําการทดลองเพ่ิมเติม (จําหนายแยก) P-Board บอรดเช่ือมตอพอรตขนาน , S-Board บอรดเช่ือมตอพอรตอนุกรม

EX-10คณุสมบัติทางเทคนิคl ใชไอซี DS1621 ทีว่ดัอณุหภมิูไดตัง้แต -55๐C ถึง+125๐C สาํหรบัตวับอรดสามารถใชงานในชวง 0-50 ๐Cl สงขอมูลอุณหภูมิผานระบบบัส I2Cl ตัง้คาจดุทรกิอุณหภูมิสูงและตํ่า เม่ือทํางานในโหมดเทอรโมสตัตไดl มีเอาตพุตแสดงผลการทํางานในโหมดเทอรโมสตัตพรอมวงจรขับ LED, ลําโพงเปยโซ และรีเลย โดยเลือกดวยจั๊มเปอรl สามารถตอพวงไดรวม 8 บอรดl เช่ือมตอกบั P-Board และ S-Board ผานทางแจก I2CBUS

Page 2: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

2 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

DS1621 ไอซีวัดอุณหภูมิแบบดิจิตอลผูผลิตคือ Dallas Semiconductor เปนไอซีวัดอุณหภูมิท่ีใชการติดตอผานระบบบัส I2C ใน

รูปท่ี 1 แสดงการจัดขาและหนาท่ีของแตละขาของไอซี DS1621 สําหรับคุณสมบัติท่ีสําคัญของDS1621 มีดังนี้

l สามารถวดัอณุหภมิูไดตัง้แต -55๐C ถึง +125๐C โดยมีความละเอียดในการวัด 0.5๐Cเทียบเปนหนวยของฟาเรนไฮตไดเทากบั -67๐F ถึง +257๐F ความละเอียด 0.9๐F โดยไมตองใชอปุกรณตอรวมภายนอก

l ความละเอียดของขอมูลอุณหภูมิดิจิตอล 9 บิตl ใชไฟเลีย้งไดตัง้แต 2.7-5.5Vl ใชเวลาในการวัดอุณหภูมิแลวแปลงเปนขอมูลดิจิตอล 1 วินาทีl สามารถทํางานเปนเทอรโมสตัต (thermostat) ได พรอมขาเอาตพุต 1 ขาl สามารถตั้งคาอุณหภูมิท่ีตองการเม่ือทํางานเปนเทอรโมสตัตได โดยติดตอผานระบบบัส

I2C และคาท่ีกาํหนดนีจ้ะคงอยูตลอดไป แมปลดไฟเลี้ยงแลวก็ตาม สามารถเปลี่ยนแปลงไดโดยการกาํหนดทางซอฟตแวรเทานั้น

l สามารถตอพวงกันไดสูงสุด 8 ตัว

การทํางานของ DS1621ในรูปท่ี 2 แสดงผังการทํางานรวมของ DS1621 หัวใจสําคัญอยูท่ีสวนวัดอุณหภูมิ เม่ือ

DS1621 เริม่ทํางาน จะทําการวดัอณุหภูมิ โดยภายในไอซีจะมีตัวตรวจจับอุณหภูมิบรรจุอยู ผลการวดัจะสงตอไปยงัสวนจดัการแอดเดรสและควบคมุอนิพุตเอาตพุต ในสวนนีน้าํขอมูลอณุหภมิูท่ีวัดไดสงตอไปยงับสัผานทางขา SDA โดยไดรบัการกาํหนดจงัหวะการทํางานจากสวนรจีสิเตอรควบคมุและแสดงสถานะ หากมีการกาํหนดใหทํางานในโหมดเทอรโมสตตั ขอมูลการวดัถกูสงไปเปรยีบเทียบกบัจดุกระตุนทางสงูและตํา่ท่ีสวนเปรยีบเทียบขอมูลดจิิตอล ผลการเปรียบเทียบจะสงออกทางขา TOUT

เนือ่งจาก DS1621 มีขากาํหนดแอดเดรส 3 ขาคอื A2-A0 จงึทําใหสามารถตอพวง DS1621ไดสงูสดุ 8 ตวั โดยแตละตวัตองกาํหนดสถานะลอจกิท่ีขาแอดเดรสท้ังสามใหแตกตางกนั สวนจดัการแอดเดรสและควบคมุอนิพุตเอาตพุตของ DS1621 แตละตวัจะเปนตวัจดัการสงขอมูลตามท่ีอปุกรณมาสเตอรรองขอ

ทฤษฎี

Page 3: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 3

คาของอุณหภูมิท่ีวัดไดถูกเก็บอยูรูปของขอมูลเลขฐานสองขนาด 9 บิต ดังแสดงตัวอยางในตารางท่ี 11-1 ขอมูลดจิติอลเอาตพุตจะแบงเปน 2 สวน 8 บติบนหรอืไบตสงูจะเปนคาอณุหภมิูจาํนวนเต็ม โดยบิต MSB จะเปนตัวแสดงเครื่องหมายวา อุณหภูมิเปนบวกหรือลบ หากบิต MSB เปน“1” แสดวาอุณหภูมิท่ีวัดไดมีคาเปนลบ ในขณะท่ี 8 บิตลางหรือไบตลางจะมีใชงานเพียงบิตเดียวจะเปนบิตแสดงคาความละเอียด ซึ่งเทากับ 0.5๐C

เม่ือสั่งให DS1621 สงขอมูลอุณหภูมิออกมา DS1621 จะใชเวลาไมเกิน 1 วินาที จึงจะสงขอมูลออกมา ดังนั้นในการควบคุมการทํางานจึงตองมีการหนวงเวลา เพ่ือรอให DS1621 วัดและแปลงคาออกมาเปนขอมูลใหเรียบรอยเสียกอน

การทํางานในโหมดเทอรโมสตัตนอกจากวดัอณุหภมิูแลว DS1621 ยงัสามารถทํางานในแบบเทอรโมสตตัหรอืใหเอาตพุตเม่ือ

อณุหภมิูต่ําหรอืสงูถงึจดุท่ีกาํหนดไว โดยผูใชงานสามารถโปรแกรมไดตามตองการและคาท่ีโปรแกรมนีจ้ะอยูตลอดไปจนกวาจะมีการแกไขแมวาจะตดัไฟเลีย้งไปแลวกต็าม ผูใชงานตองกาํหนดคาของจดุทริกอุณหภูมิสูง (high temperature trigger : TH) และ จุดทริกอุณหภูมิต่ํา (low temperaturetrigger :TL) และเลอืกสญัญาณแอกตฟีวา เม่ืออณุหภมิูสงูมาถงึจดุท่ีกําหนดจะใหขาเอาตพุต TOUTสงสัญญาณลอจิกแบบใดออกไป สามารถเลือกได 2 แบบคือ ลอจิก “0” หรือ “1”

เม่ือกาํหนดคาเรยีบรอยแลว DS1621 จะวดัอณุหภมิูไปเรือ่ยๆ จนกระท่ังเม่ืออุณหภูมิสูงจนถึงจุด TH ขา TOUT ก็จะแอกตีฟทันที และแอกตีฟคางอยูเชนนั้นจนกวาอุณหภูมิท่ีวัดไดลดตํ่าลงกวาจุด TL ดังนั้นการกําหนดคาของ TH และ TL จึงสําคัญมาก หากกําหนดไวแคบหรือมีความแตกตางกนันอยเกนิไป และอณุหภมิูท่ีวดัจรงินัน้มีการเปลีย่นแปลงในชวงแคบๆ หรอืจรงิๆ แลวคอนขางคงท่ี จะทําใหเอาตพุตท่ีขา TOUT เกิดสัญญาณลอจิกท่ีไมคงท่ี จนคลายกับเปนสัญญาณรบกวนสงผลใหการนาํสญัญาณไปใชงานทําไดไมด ีแตถาหากกาํหนดไวหางหรอืมีความแตกตางมากเกินไปอาจทําใหมองไดวา วงจรเทอรโมสตัตนี้มีความไวในการทํางานตํ่า เพราะกวาจะตัดเอาตพุตตองรอใหอุณหภูมิลดคาลงตํ่ากวาจุด TH มากๆ ซึ่งอาจสงผลเสียหากการลดลงของอุณหภูมิท่ีเกิดข้ึนจริง

7B00H

1900H

0080H

0000H

FF80H

E700H

C900H

+125๐C

ขอมูลดิจิตอลเอาตพุต(เลขฐานสิบหก)อุณหภูมิ

+25๐C+0.5๐C

0๐C-0.5๐C

-25๐C-55๐C

00011001 00000000

01111101 00000000

00000001 00000000

00000000 00000000

11111111 10000000

11100111 00000000

11001001 00000000

ขอมูลดิจิตอลเอาตพุต(เลขฐานสอง)

ตารางท่ี 1 แสดงรูปแบบขอมลูดิจติอลตัวอยางของอณุหภูมท่ีิวดัไดจาก DS1621 จะเหน็ไดวาขอมูลอุณหภูมิอยูท่ี 8 บิตบน สวน 8 บิตลางแสดงคาความละเอียด

Page 4: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

4 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

ลงไมถงึจดุ TL แตอปุกรณท่ีตองการนําสัญญาณนี้ไปใชมีความสามารถในการทนอุณหภูมิในชวงระหวาง TH และ TL ไดไมนาน ก็จะสงผลใหเกิดความเสียหายตออุปกรณนั้นๆ ได ในรูปท่ี 3 แสดงรูปแบบการทํางานของ DS1621 ในโหมดเทอรโมสตัตนี้

รีจิสเตอรกําหนดการทํางานของ DS1621ในการกําหนดคา TH และ TL ของ DS1621 ตลอดจนการเลือกสัญญาณแอกตีฟในโหมด

เทอรโมสตัตสามารถกระทําผานรีจิสเตอรตัวหนึ่งท่ีช่ือวา รีจิสเตอรกําหนดการทํางานและแสดงสถานะ (Configuration/Status register) โดยมันสามารถทําหนาท่ีได 2 อยางคอื ใชสําหรับกําหนดพารามิเตอรสาํคญัเม่ือกาํหนดให DS1621 ทํางานในโหมดเทอรโมสตัต และใชแสดงสถานะการวัดและแปลงคาอุณหภูมิ โดยรีจิสเตอรกําหนดการทํางานนี้มีขนาด 8 บิต สามารถเขาถึงดวยกระบวนการติดตอผานระบบบัส I2C แตละบิตของรีจีสเตอรมีรายละเอียดดังนี้

บิต 7DONE

บิต 6THF

บิต 5TLF

บิต 4NVB

บิต 31

บิต 20

บิต 1POL

บิต 01SHOT

DONE (Conversion done - บติ 7) : บติแสดงสถานะของการแปลงขอมูลอุณหภูมิ“0” - ยงัอยูในระหวางการแปลงขอมูล“1” - การแปลงขอมูลเสรจ็สมบรูณแลว

THF (Temperature High Flag - บติ 6) : บติแฟลกแจงวาอณุหภมิูท่ีวดัไดสงูกวาจุดทริกอุณหภูมิสูงหรือ TH โดยเม่ือเกิดเหตุการณนี้ข้ึน บิตนี้จะเซตเปน “1” และดํารงสถานะนี้ไวจนกวาจะมีการเขียนขอมูล “0” มายงับตินีด้วยกระบวนการทางซอฟตแวร หรอืเคลยีรดวยการปลดไฟเลีย้งออกจาก DS1621 ประโยชนของบิตนี้คือ หากบิตนี้เซตทันทีท่ีจายไฟเลี้ยงใหม ผูใชงานก็จะทราบไดทันท่ีเชนกนัวา ขณะนีอ้ณุหภมิูท่ีวดัไดมีคาสงูกวาจดุทรกิอณุหภมิู TH ผูใชงานสามารถเลอืกไดกอน

ขาที่ ชื่อขา หนาที่/การทํางาน

2 SCL

1 SDA ขาขอมูลอนุกรมสําหรับเช่ือมตอกับระบบบัส I 2C

3 TOUT

4 GND

5-7 A2-A0

8 +Vcc

ขาสัญญาณนาฬิกาสําหรับเช่ือมตอกับระบบบัส I 2C

ขาเอาตพุตเทอรโมสตัต กระแสซอรสเอาตพุต 1mA กระแสซิงกเอาตพุต 4mA"แอกตีฟ" เมื่ออุณหภูมิสูงถึงจุดกระตุนสูง (TH)"รีเซต" เมื่ออุณหภูมิลดลงต่ํากวาจุดกระตุนต่ํา (TL)

ขาตอกราวดของวงจร

ขากําหนดแอดเดรสของ DS1621 หากมีตัวเดียวในระบบควรตอลงกราวด

ขาตอไฟเล้ียง +5V

1

2

3

4

8

7

6

5

DS1621Digital

Tthermometerand thermostat

SDA

SCL

TOUT

GND A2

A1

A0

+Vcc

รูปท่ี 1 การจัดขาและการทํางานของ DS1621 ไอซีวัดอุณหภูมิแบบดิจิตอล

Page 5: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 5

วา จะแกไขคาอุณหภูมิของจุด TH หรือไม หรือไปแกไขในสวนอื่นแทน ดังนั้นเม่ือเริ่มตนใชงานDS1621 จึงควรอานบิตแฟลกนี้กอนเพ่ือตรวจสอบ เพราะบางทีผูใชงานไมทราบมากอนวาคา THกอนหนานี้ของ DS1621 ถูกกําหนดไวเทาใด

TLF (Temperature Low Flag - บติ 5) : บติแฟลกแจงวาอณุหภมิูท่ีวดัไดเทากับหรือตํ่ากวาจุดทริกอุณหภูมิตํ่าหรือ TL โดยเม่ือเกิดเหตุการณนี้ข้ึน บิตนี้จะเซตเปน “1” และดํารงสถานะนี้ไวจนกวาจะมีการเขียนขอมูล “0” มายงับตินีด้วยกระบวนการทางซอฟตแวร หรือเคลียรดวยการปลดไฟเลี้ยงออกจาก DS1621 ประโยชนของบิตนี้คือ หากบิตนี้เซตทันทีท่ีจายไฟเลี้ยงใหม ผูใชงานก็จะทราบไดทันท่ีเชนกนัวา ขณะนีอ้ณุหภมิูท่ีวดัไดมีคาเทาหรือตํ่ากวาจุดทริกอุณหภูมิตํ่า TL ผูใชงานสามารถเลือกไดกอนวา จะแกไขคาอุณหภูมิของจุด TL หรือไม หรือไปแกไขในสวนอื่นแทน ดังนั้นเม่ือเริม่ตนใชงาน DS1621 จงึควรอานบติแฟลกนีก้อนเพ่ือตรวจสอบ เพราะบางทีผูใชงานไมทราบมากอนวาคา TL กอนหนานี้ของ DS1621 ถูกกําหนดไวเทาใด

NVB (Nonvolatile Memory Busy Flag - บติ 4) : บติแฟลกแสดงสถานะการเขียนขอมูลลงในหนวยความจําอีอีพรอมภายใน DS1621 เพ่ือเก็บคาพารามิเตอรท่ีจําเปน ปกติจะใชเวลาประมาณ 10 มิลลิวินาที

“0” - ยงัอยูระหวางการเขียนขอมูล“1” - การเขียนขอมูลเสรจ็สมบรูณ

บิต 3 : ไมใชงาน กําหนดใหเปน “1”

บิต 2 : ไมใชงาน กําหนดใหเปน “0”

สวนกําหนดแอดเดรสและควบคุม

ขาอินพุตเอาตพุต

รีจิสเตอรควบคุมและแสดงสถานะ

ตัวตรวจวัดอุณหภูมิ

จุดทริกอุณหภูมิสูง (TH)

จุดทริกอุณหภูมิต่ํา (TL)

สวนเปรียบเทียบขอมูลดิจิตอล TOUT

SCL

SDA

A0A1A2

รูปท่ี 2 ผังการทํางานเบื้องตนโดยรวมของ DS1621 ไอซีวัดอุณหภูมิแบบดิจิตอล

Page 6: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

6 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

POL (Output Polarity Bit - บติ 1) : บติเลอืกสถานะเอาตพุตของขา TOUT เม่ือทํางานในโหมดเทอรโมสตตั เม่ือเลอืกแลวขอมูลของบตินีจ้ะดาํรงอยูไปตลอดแมปลดไฟเลีย้งกต็าม หรอืเรยีกวา นอนโวลาไทล (non-volatile)

“0” - แอกตฟีดวยลอจกิ “0”“1” - แอกตฟีดวยลอจกิ “1”

1SHOT (One Shot Mode - บติ 0) : บติเลอืกวธีิการวดัและแปลงคาอณุหภมิูของ DS1621เม่ือเลือกแลวขอมูลของบิตนี้จะดํารงอยูไปตลอดแมปลดไฟเลี้ยงก็ตาม หรือเรียกวา นอนโวลาไทล(non-volatile)

“0” - กาํหนดให DS1621 ทําการวดัและแปลงคาอยางตอเนือ่ง“1” - กาํหนดให DS1621 เริม่ทําการแปลงคาอณุหภมิูเม่ือไดรบัสญัญาณเริม่ตน

โดยปกตแิลวควรกาํหนดให DS1621 วดัและแปลงคาอณุหภูมิอยางตอเนื่อง เวนแตมีความตองการควบคมุการใชพลงังานเพราะหาก DS1621 ไมไดวดัอณุหภมิูและแปลงคาจะใชพลงังานลดลง

DS1621

TH=60TL=59.5active "1"

อุณหภูมิจริงเปลี่ยนแปลงในชวง 59-60๐C(อาจถือไดวาคอนขางคงท่ี)

TOUT

DS1621

TH=59TL=30

active "1"

อุณหภูมิจริงเริ่มตนจาก 0-60๐Cแลวลดลงจากน้ันจะเปลี่ยนแปลงในชวง

50-60๐C TOUT

t5t1 t3 t4 t6

TH

TL

TOUT

"0"

"1"

t2

t

t

อุณหภูมิคาวัดไดจาก DS1621

รูปท่ี 3 รูปแบบการทํางานในโหมดเทอรโมสตัตของ DS1621

Page 7: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 7

คําสั่งในการใชงาน DS1621การอานและเขียนขอมูลกับ DS1621 มีรูปแบบตางๆ กันไปตามลักษณะขอมูลและคําสั่งดัง

แสดงในรูปท่ี 4 ในการเขียนขอมูลหรือคําสั่งไปยัง DS1621 อุปกรณมาสเตอร (ซึ่งในท่ีนี้คือคอมพิวเตอร) จะกําหนดคาแอดเดรสของ DS1621 ตัวท่ีตองการติดตอ แลวตามดวยการเซตบิตR/W จากนัน้จะรอการตอบรบัจากอปุกรณสเลฟ ซึง่กค็อื DS1621 เม่ือไดรบัการตอบรบัแลว อปุกรณมาสเตอรจะจดัเตรยีมคาํสัง่เพ่ือใชงาน DS1621 ตอไป โดยทุกครัง้ท่ีมีการเขียนคาํสัง่ไปยงั DS1621ตองเคลยีรบติ R/W ดวยเสมอ เม่ือ DS1621 ไดรับคําสั่งจากอุปกรณมาสเตอรก็จะดําเนินการตามท่ีกาํหนดมาจากอปุกรณมาสเตอร และทุกครัง้จะตองสงสญัญาณรบัรูหรอืตอบรับกลับไปยังอุปกรณมาสเตอร สําหรับคําสั่งท้ังหมดของ DS1621 มีดังนี้

SCL

SDA S 1 0 0 1 A2 A1 A0 W A C7 C6 C5 C4 C3 C2 C1 C0 A P

START

แอดเดรส คําสั่ง

DS1621ACK

STOPDS1621ACK

เขียนคําสั่งในกลุมท่ีไมตองการขอมูล เชน คําสั่งเร่ิมตน/หยุดการแปลงคาอุณหภูมิ

เขียนคําสั่งในกลุมท่ีตองการขอมูล 1 ไบต เชน คําสั่งเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะSCL

SDA S 1

START

0 0 1 A2 A1 A0 W A

แอดเดรส

DS1621ACK

C7 C6 C5 C4 C3 C2 C1 C0 A

คําสั่ง

DS1621ACK

D7 D6 D5 D4 D3 D2 D1 D0

ขอมูล

A P

DS1621ACK

STOP

เขียนคําสั่งในกลุมท่ีตองการขอมูล 2 ไบต เชน คําสั่งเขาถึงคา TH และ TL

SDA S 1

START

0 0 1 A2 A1 A0 W A

แอดเดรส

DS1621ACK

C7 C6 C5 C4 C3 C2 C1 C0 A

คําสั่ง

DS1621ACK

D7 D6 D5 D4 D3 D2 D1 D0

ขอมูลไบตสูง

A P

DS1621ACK

STOP

SCL

A

DS1621ACK

D7 D6 D5 D4 D3 D2 D1 D0

ขอมูลไบตต่ํา

SDA S 1

START

0 0 1 A2 A1 A0 W A

แอดเดรส

DS1621ACK

C7 C6 C5 C4 C3 C2 C1 C0 A

คําสั่ง

DS1621ACK

SCL

อานขอมูลจากรีจิสเตอรท่ีมีขนาด 1 ไบต ไดแก รีจิสเตอรกําหนดการทํางานและแสดงสถานะ, ตัวนับ และตัวนับสโลป

A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0

ขอมูล

N P

MASTERNACK

STOP

R

RepeatSTART

1 0 0 1

แอดเดรส

Rd

DS1621ACK

A

อานขอมูลจากรีจิสเตอรท่ีมีขนาด 2 ไบต ไดแก คาของ TH, TL และคาอุณหภูมิSCL

SDA S 1

START

0 0 1 A2 A1 A0 W A

แอดเดรส

DS1621ACK

C7 C6 C5 C4 C3 C2 C1 C0 A

คําสั่ง

DS1621ACK

A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0

ขอมูล

N P

MASTERNACK

STOP

R

RepeatSTART

1 0 0 1

แอดเดรส

Rd

DS1621ACK

A D7 D6 D5 D4 D3 D2 D1 D0

ขอมูล

A

MASTERACK

รูปท่ี 4 ไดอะแกรมเวลาแสดงรูปแบบการติดตอบนระบบบัส I2C ของ DS1621

Page 8: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

8 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

คําสั่งอานอุณหภูมิ (Read Temperature : ขอมูลคําสั่งเปน AAH)เปนคําสั่งอานคาอุณหภูมิลาสุดท่ี DS1621 แปลงเสร็จสมบูรณ โดยขอมูลมีขนาด 2 ไบต

คําสั่งเขาถึงคา TH (Access TH : ขอมูลคําสั่งเปน A1H)เปนคําสั่งเขาถึงคาของจุดทริกอุณหภูมิสูงหรือ TH ถาหากบิต R/W ถูกกําหนดใหเปน “0”

เปนการระบวุาตองการเขียนขอมูลกบั DS1621 เพ่ือกาํหนดคาหรอืตัง้คา TH ใหม โดยขอมูลท่ีเขียนมีขนาด 2 ไบต แตถาบติ R/W เปน “1” จะเปนการเขาถงึเพ่ืออานคา TH ในขณะนั้นของ DS1621คําสั่งเขาถึงคา TL (Access TL : ขอมูลคําสั่งเปน A2H)

เปนคําสั่งเขาถึงคาของจุดทริกอุณหภูมิตํ่าหรือ TL ถาหากบิต R/W เปน “0” เปนการระบุวาตองการเขียนขอมูลไปยัง DS1621 เพ่ือกําหนดคาหรือตั้งคา TL ใหม โดยขอมูลท่ีเขียนมีขนาด2 ไบต แตถาบิต R/W เปน “1” จะเปนการเขาถึงเพ่ืออานคา TL ในขณะนั้นของ DS1621 แทนคําสั่งเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะ (Access Config : ขอมูลคําส่ังเปน ACH)

เปนคาํสัง่สาํหรบัเขาถงึหรอืตดิตอกบัรจีสิเตอรกาํหนดการทํางานและแสดงสถานะ (Config)ถาหากบติ R/W ถกูกาํหนดใหเปน “0” เปนการระบวุาตองการเขียนขอมูลไปยงัรจีสิเตอรเพ่ือกาํหนดลักษณะการทํางานของ DS1621 โดยขอมูลท่ีเขียนนั้นมีขนาด 1 ไบต แตถาหากบิต R/W เปน“1” จะเปนการเขาถึงเพ่ืออานคาของรีจิสเตอรเพ่ือตรวจสอบสถานะการทํางานของ DS1621คําสั่งอานตัวนับ (Read Counter : ขอมูลคําสั่งเปน A8H)

เปนคาํสัง่อานคาตวันบัท่ีใชในการแปลงคาอณุหภมิูเม่ือใชคําสั่งนี้บิต R/W เปน “1” เทานั้นคําสั่งอานคาตัวนับละเอียด (Read Slope : ขอมูลคําสั่งเปน A9H)

เปนคาํสัง่สาํหรบัอานคาตวันบัละเอยีด ในกรณท่ีีตองการใหแสดงรายละเอยีดคาของอณุหภมิูซึง่เกบ็อยูในตวันบัละเอยีด (slope counter) ในการใชงานคําสั่งนี้ตองกําหนดใหบิต R/W เปน “1”คําสั่งเริ่มตนแปลงคาอุณหภูมิ (Start Convert T : ขอมูลคําสั่งเปน EEH)

เปนคําสั่งท่ีกําหนดให DS1621 เริ่มตนการแปลงคาอุณหภูมิคําสั่งหยุดการแปลงคาอุณหภูมิ (Stop Convert T : ขอมูลคําสั่งเปน 22H)

เปนคาํสัง่ท่ีกาํหนดให DS1621 หยดุการแปลงคาอณุหภมิู มักจะใชเม่ือตองการให DS1621หยุดทําการวัดและแปลงคาอุณหภูมิอยางตอเนื่อง หลังจากท่ี DS1621 กระทําคําสั่งนี ้คาอุณหภูมิท่ีแปลงไดลาสดุจะยงัคงอยู จนกวาจะมีการกาํหนดให DS1621 กลบัมาเริม่ตนแปลงคาอณุหภมิูใหม

ในตารางท่ี 2 เปนตารางสรุปคําสั่งใชงาน DS1621จังหวะการทํางานของ DS1621

เพ่ือใหสามารถเขาใจถงึลาํดบัการทํางานรวมถงึสถานะตางๆ ของ DS1621 จึงไดทําการสรุปสถานะของบัส โหมดการทํางานของ DS1621 และชนิดของขอมูลท่ีปรากฏไวในตารางท่ี 3

Page 9: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 9

EX-10 บอรดวดัอุณหภมิูผานระบบบสั I2Cในรปูท่ี 5 แสดงวงจรสมบรูณของ EX-10 บอรดวดัอณุหภมิูและเทอรโมสตตัท่ีทํางานบน

ระบบบัส I2C หัวใจสําคัญของบอรดนี้คือ IC1001 เบอร DS1621 ซึ่งเปนไอซีวัดอุณหภูมิท่ีใชการติดตอผานระบบบัส I2C โดยขาสัญญาณ SDA และ SCL ของ IC1001 จะตอเขากับ K1001 และK1002 ซึง่เปนจดุเช่ือมตอระบบบสั I2C กบั P-Board โดยใชแจกโมดลูารทําใหการเช่ือมตอสามารถทําไดงายและมีความแข็งแรง JP1001-JP1003 ใชสําหรับกําหนดคาแอดเดรสทางฮารดแวรของDS1621 ทําใหสามารถตอพวงบอรด EX-10 นีไ้ดสงูสดุรวม 8 บอรด โดยการกําหนดสถานะท่ีขาA2-A0 ของ DS1621 ใหแตกตางกนัดวยจัม๊เปอร JP1001-JP1003 สาํหรบัเอาตพุตของ DS1621ซึ่งใชแสดงผลการทํางานของวงจรเทอรโมสตัตนั้น จะตอเขากับอุปกรณ 2 แบบคือ ลําโพงเปยโซสาํหรบัแสดงผลดวยเสยีงและวงจรขับรีเลยเพ่ือใหทํางานเหมือนสวิตชตัดตอ การเลือกอุปกรณท่ีขาTOUT ของ DS1621 นั้นตองกระทําผาน JP1004 และ JP1005 โดยสามารถเลือกใหแสดงผล

เร่ิมตนแปลงคาอุณหภูมิ

อานคาอุณหภูมิอานคาตัวนับอานคาตัวนับสโลป

หยุดแปลงคาอุณหภูมิ

AAHA8HA9HEEH22H

อานขอมูล 2 ไบต

คําสั่ง ขอมูลคําสั่ง การทํางานหลังสงคําสั่ง หมายเหตุ

อานขอมูล 1 ไบตอานขอมูล 1 ไบต

หยุดและเตรียมพรอมเร่ิมตนหยุดและเตรียมพรอมเร่ิมตน

11

เขาถึง THเขาถึง TLเขาถึงรีจิสเตอร Config.

A1HA2HACH

เขียนขอมูล 1 ไบต 222

เขียนขอมูล 1 ไบตเขียนขอมูล 1 ไบต

หมายเหตุ1. ในโหมดการแปลงคาอยางตอเนื่อง เมื่อ DS1621 กระทําคําสั่งหยุดการแปลงคา จะเปนการยกเลิกการแปลงคาอยางตอเนื่องทันที หากตองการให DS1621 แปลงคาอีกครั้ง ตองเขียนคําสั่งเริ่มตนการแปลงคาใหแก DS1621 ใหม2. การเขียนขอมูลไปยังรีจิสเตอร DS1621 ตองการเวลา 10 มิลลิวินาทีเปนอยางนอยในการเขียนขอมูลใหสมบูรณ

คําสั่งเก่ียวกับการแปลงคาอุณหภูมิ

คําสั่งในโหมดเทอรโมสตัต

ตารางท่ี 2 ตารางสรุปคําสั่งสําหรับใชงาน DS1621

Page 10: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

10 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

ดวยเสยีงพรอมกบัรเีลยทํางานกไ็ด นอกจากนัน้ยงัมีการแสดงผลการทํางานของ DS1621 ในโหมดเทอรโมสตัตอีกอยางหนึ่งคือ แสดงผลดวยแสง นั่นคือ LED1001 จะติดสวางเม่ือคาอุณหภูมิท่ีวัดสูงถึงจุด TH

รเีลย RY1001 ท่ีใชไดจดัเตรยีมเทอรมินอลบลอ็กสาํหรบัตอสายเพ่ือเช่ือมตอกบัอปุกรณหรอืสัญญาณภายนอกไวเรียบรอย โดยมีพิกัดของหนาสัมผัสรีเลยสูงสุดเทากับ 220VAC 5A และหาก

โหมดการทํางานของอุปกรณมาสเตอร

โหมดการทํางานของDS1621

สภาวะและขอมูลท่ีปรากฏบนบัส รายละเอียด

TX RX START คอมพิวเตอรกําหนดสภาวะเริ่มตนใหเกิดขึ้นบนบัสTX RX <ADDRESS,0> คอมพิวเตอรสงคาแอดเดรสของ DS1621 และกําหนดบิต R/W เปน "0"RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับ

RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับTX RX ACH คอมพิวเตอรสงคําสั่งเขาถึงรีจิสเตอรกําหนดการทํางาน

RX คอมพิวเตอรสงขอมูลเพ่ือกําหนดให DS1621 แปลงคาอยางตอเน ื่องและใหเอาตพุตเปนลอจิกสูงเมื่ออุณหภูมิที่วัดสูงถึงจุด TH

RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับTX RX START คอมพิวเตอรกําหนดสภาวะเริ่มตนใหเกิดขึ้นบนบัสอีกครั้ง

RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับTX RX <address,0> คอมพิวเตอรสงคาแอดเดรสของ DS1621 และกําหนดบิต R/W เปน "0"

TX RX A1H คอมพิวเตอรสงคําสั่งเขาถึง THRX TX ACK DS1621 สงสัญญาณรับรูตอบกลับTX RX 28H คอมพิวเตอรเขียนขอมูลไบตสูงของคา TH (กําหนดใหเทากับ +40๐C)

TX RX 00H คอมพิวเตอรเขียนขอมูลไบตตํ่าของคา THRX TX ACK DS1621 สงสัญญาณรับรูตอบกลับ

RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับTX RX START คอมพิวเตอรกําหนดสภาวะเริ่มตนใหเกิดขึ้นบนบัสอีกครั้งTX RX <address,0> คอมพิวเตอรสงคาแอดเดรสของ DS1621 และกําหนดบิต R/W เปน "0"

TX RX A2H

RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับ

RX TX ACK

TX RX 0AH

TX RX 00H

TX RX START คอมพิวเตอรกําหนดสภาวะเริ่มตนใหเกิดขึ้นบนบัสอีกครั้งRX TX ACK

TX RX <address,0> คอมพิวเตอรสงคาแอดเดรสของ DS1621 และกําหนดบิต R/W เปน "0"RX TX ACK DS1621 สงสัญญาณรับรูตอบกลับTX RX EEH คอมพิวเตอรสงคําสั่งเริ่มตนแปลงคาอุณหภูมิ

TX RX STOP คอมพิวเตอรกําหนดสภาวะหยุดใหเกิดขึ้นบนบัส เพ่ือหยุดการทํางานRX TX ACK DS1621 สงสัญญาณรับรูตอบกลับ

RX TX ACK

02HTX

คอมพิวเตอรสงคําสั่งเขาถึง TLDS1621 สงสัญญาณรับรูตอบกลับคอมพิวเตอรเขียนขอมูลไบตสูงของคา TL (กําหนดใหเทากับ +10๐C)

คอมพิวเตอรเขียนขอมูลไบตตํ่าของคา TLDS1621 สงสัญญาณรับรูตอบกลับ

DS1621 สงสัญญาณรับรูตอบกลับ

หมายเหตุTX หมายถึง ทําหนาที่เปนตัวสง, RX หมายถึง ทําหนาที่เปนตัวรับ, H ที่อยูหลังขอมูลใชแสดงวา ขอมูลนั้นๆ เปนขอมูลเลขฐานสิบหก

ตารางท่ี 11-3 แสดงตัวอยางลําดับการทํางาน โหมดการทํางานของอปุกรณมาสเตอร (ซึ่งในท่ีนี้คือ คอมพิวเตอร) และ DS1621 ตลอดจนสถานะของบัสในขณะติดตอ

Page 11: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 11

Q1001BC547

R100115k

+5VBUS

SDA

SCL

K1001I2C BUS(RJ11-4)

+5VBUS

SDA

SCL

+5VBUS

R100215k

SDASCL

12

A1 A0

7

A2

65

GND4

VDD

Tout

R10034.7

"1"

"0"

A1 A0A2

JP1001-JP1003ADDRESS

83

ZD10015V1

C10010.1/50V

Temperature Sensor

R100410k

R100510k

R10061k

LED1001ACTIVE

Q1002BC337

R1007470k

Q1003BC557

Q1004BC547

R100810k

C10020.01/50V

R100912

R1010470

1/2W

JP1004SOUND

SP1001PIEZO

SPEAKER

JP1005RELAY

NC

COM

NO

RY1001RELAY 12V

D10011N4001

D10021N4001

+12V.

GNDK1003

EXTERNAL12V. INPUT

K1004RELAY

CONTACT

K1002I2C BUS(RJ11-4)

Contact rating : 220V 5A

IC1001DS1621

รูปท่ี 5 วงจรของ EX-10 บอรดวดัอณุหภูมแิละเทอรโมสตัตผานระบบบสั I2C

ตองการใหรเีลยทํางาน จะตองจายไฟเลีย้ง +12V ใหแกบอรด EX-10 แทนการใชไฟเลี้ยงจาก I2CBUS ท่ีมาจากคอนเน็กเตอร K1001

นัน่หมายความวา บอรด EX-10 สามารถใชไฟเลีย้งไดจาก 2 แหลงคอื จากคอนเน็กเตอรK1001 ซึ่งมาจาก I2C BUS ของ P-Board และจากแหลงจายไฟตรงภายนอกท่ีมีคาไมเกนิ +12Vเนื่องจากบนบอรดมีไอซีควบคุมแรงดันไฟเลี้ยงคงท่ีท่ี +5V เบอร 78L05 อยูดวย จึงสามารถสรางไฟเลี้ยง +5V เพ่ือจายใหแก DS1621 และอุปกรณท้ังหมดได หากไมใชไฟเลี้ยง +12V ภายนอกกจ็ะไมสามารถใชงานรีเลยได และจะตองปลดจั๊มเปอร JP1005 ออกดวยเสมอ หากใชไฟเลี้ยงจากI2C BUS หรอืเม่ือไมตองการใชงานรเีลย ท้ังนีเ้พ่ือลดปรมิาณกระแสไฟฟาท่ีใชของบอรด EX-10

อยางไรก็ตาม อุปกรณเอาตพุตท้ังหมดไมวาจะเปนแสงจาก LED เสียงจากลําโพงเปยโซหรือรีเลยจะสามารถใหผลการทํางานท่ีถูกตองก็ตอเม่ือกําหนดให DS1621 สงลอจิกสูงหรือลอจิก“1” ออกทางขา TOUT เม่ืออุณหภูมิสูงถึงจุด TH เทานั้น นั่นคือตองเซตบิต POL ในรีจิสเตอรกําหนดการทํางานและแสดงสถานะของ DS1621 ใหเปน “1”

Page 12: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

12 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

เคร่ืองมือและอุปกรณ1. บอรดเช่ือมตอพอรตขนาน P-Board 1 แผน2. EX-10 บอรดวัดอณุหภูมผิานระบบบัส I2C 1 แผน3. คอมพิวเตอรที่ติดต้ังระบบปฏิบัติการวินโดวสและ Visual BASIC อยางนอยเวอรชัน 5.04. สายเช่ือมตอ I2C 1 เสน

การทดลองการทดลองอานคาอุณหภูมิจาก DS1621

กอนอานคาจากรีจิสเตอร Temperature ตองสั่งให DS1621 เริ่มการแปลงคาอุณหภูมิ(Start Convert) ซ่ึงมีข้ันตอนดังนี้

1. สงสัญญาณ START2. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสุดทายเปน “0” เพื่อ

กําหนดการเขียนขอมูลไปยัง DS16213. รอรับสัญญาณ ACK จาก DS16214. สงคําสั่ง (Command) &HEE สั่งใหเริ่มการแปลงคาอุณหภูมิ5. รอรับสัญญาณ ACK จาก DS16216. สงสัญญาณ STOPถาตองการให DS1621 หยุดการแปลงคาอุณหภูม ิ(Stop Convert) มีข้ันตอนดังนี้1. สงสัญญาณ START2. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสดุทายเปน “0” เพือ่กาํหนด

การเขียนขอมูลไปยัง DS16213. รอรับสัญญาณ ACK จาก DS16214. สงคําสั่ง (Command) &H22 สั่งใหหยุดการแปลงคาอุณหภูมิ5. รอรับสัญญาณ ACK จาก DS16216. สงสัญญาณ STOP

การทดลอง

Page 13: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 13

การอานคาจากรีจิสเตอร Temperature มีข้ันตอนดังนี้1. สงสัญญาณ START2. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสุดทายเปน “0” เพื่อ

กําหนดการเขียนขอมูลไปยัง DS16213. รอรับสัญญาณ ACK จาก DS16214. สงคําสั่ง (Command) &HAA สําหรับอานคาจากรีจิสเตอร Temperature ให DS16215. รอรับสัญญาณ ACK จาก DS16216. สงสัญญาณ START7. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสดุทายเปน “0” เพือ่กาํหนด

การเขียนขอมูลไปยัง DS16218. รอรับสัญญาณ ACK จาก DS16219. อานคาจาก MSB ของรีจิสเตอร Temperature10. สงสัญญาณ Master ACK ให DS162111. อานคาจาก LSB ของรีจิสเตอร Temperature12. สงสัญญาณ Master Not ACK ให DS162113. สงสัญญาณ STOPจากข้ันตอนดังกลาวสามารถเขียนเปนโปรแกรมทดลองตามข้ันตอนตอไปนี้

1.1 สรางฟอรมและเปลีย่นช่ือคอนโทรลตางๆดังรูปที่ P1-1

รูปท่ี P1-1 หนาตาฟอรมของโปรแกรมทดลองอานคาอุณหภูมิจากไอซี DS1621บน บอรด EX-10

Name cmdRdTemp

Caption Read Temp

Name cmdSTARTConv

Caption Start Convert

Name txtTemp

Text

Name cmdSTOPConv

Caption Stop Convert

1.2 เปลี่ยนคุณสมบัติของคอนโทรลตางๆ ดังนี้

Page 14: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

14 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

1.3 เขียนโปรแกรมใหกับเหตุการณ cmdSTARTConv_Click ดังนี้Private Sub cmdSTARTConvert_Click() I2CSTART Send8BIT &H90 Ack Send8BIT &HEE ‘Start Convert Temperature Command Ack I2CSTOPEnd Sub

1.4 เขียนโปรแกรมใหกับเหตุการณ cmdSTOPConv_Click ดังนี้Private Sub cmdSTOPConvert_Click() I2CSTART Send8BIT &H90 Ack Send8BIT &H22 ‘Stop Convert Temperature Command Ack I2CSTOPEnd Sub

1.5 เขียนโปรแกรมใหกับเหตุการณ cmdRdTemp_Click ดังนี้Private Sub cmdRdTemp_Click()Dim tmp As DoubleDim datH As IntegerDim datL As Integer I2CSTART Send8BIT &H90 Ack Send8BIT &HAA ‘Read Temperature Command Ack I2CSTART Send8BIT &H90 + 1 Ack datH = Read8Bit ‘Read TH Register MAck datL = Read8Bit ‘Read TL Register MNAck I2CSTOP If (datL And &H80) = &H80 Then tmp = datH + 0.5 Else tmp = datH End If txtTemp.Text = tmpEnd Sub

Page 15: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 15

1.6 หลังจากสิ้นสุดกระบวนการติดตอกับ DS1621 ขอมูลที่ไดจะตองนํามาคํานวณเพิ่มเติมโดยตรวจสอบวาบิต 7 ของขอมูลไบตลางของรีจิสเตอร Temperature มีคาเปน “1” หรือไม ถาเปนใหนาํคาทีไ่ดจากขอมลูไบตบนหรอืไบตสงูของรจิีสเตอร Temperature บวกดวย 0.5 แตถาเปนตรงขาม ขอมูลไบตสูงของรีจิสเตอร Temperature ก็คือ คาของอุณหภูมิที่อานได1.7 รันโปรแกรมแลวทดลองคลิ้กปุม Read Temp จะเห็นวาคาที่อานไดเปน 0 เนื่องจากยังไมมีการเริ่มตนการแปลงคาอุณหภูม ิคาที่อานไดจากรีจิสเตอร Temperature จึงเปน 0

1.8 คลิ้กปุม Start Convert เพื่อเริ่มการแปลงคาอุณหภูมิ จากนั้นคลิ้กที่ปุม Read Temp อีกครั้งจะสามารถอานคาอุณหภูมิได1.9 ทดลองใชนิว้หรอือปุกรณอืน่แตะทีตั่ว DS1621 ใหอณุหภูมเิปลีย่น จากนัน้คลิก้ปุม Read Tempอีกครั้ง ถาไมมีการเปลี่ยนแปลง มีสาเหตุคือ ตัว DS1621 ไมทําการแปลงคาอุณหภูมิอยางตอเนื่อง เพราะที่บิต 1SHORT ในรีจิสเตอรกําหนดการทํางานและแสดงสถานะมีคาเปน “1” ซ่ึงเปนโหมดแปลงคาอุณหภูมิเพียงครั้งเดียวเมื่อไดรับสัญญาณ Start Convert และหยุดการทํางานอตัโนมัติ ถาเกดิการเปลี่ยนแปลงคาขึ้น แสดงวา ทีบิ่ต 1Shot มีคาเปน “0” อันเปนโหมดแปลงคาตอเนื่องเมื่อไดรับสัญญาณ Start Convert

รายละเอียดของโปรแกรมทดลองนี้ดูไดจากไฟล LAB15A.VBPการทดลองเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะ (Config register)

การเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะสามารถทําไดโดยใชคําสั่ง &HACซ่ึงมีข้ันตอนดังนี้

1. สงสัญญาณ START2. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสุดทายเปน “0” เพื่อ

กําหนดการเขียนขอมูลไปยัง DS16213. รอรับสัญญาณ ACK จาก DS16214. สงคําสั่ง (Command) &HAC เพื่อเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะ5. รอรับสัญญาณ ACK จาก DS16216. สงสัญญาณ START7. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสุดทายเปน “1” เพื่อ

กําหนดการอานขอมูลออกจาก DS16218. รอรับสัญญาณ ACK จาก DS16219. รับคาจากรีจิสเตอรกําหนดการทํางานและแสดงสถานะ

Page 16: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

16 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

10. สงสัญญาณ Master Not ACK ให DS162111. สงสัญญาณ STOPสวนการเขียนขอมูลลงรีจิสเตอรกําหนดการทํางานและแสดงสถานะ ทําไดโดยใชคําสั่ง

&HAC มีข้ันตอนดังนี้1. สงสัญญาณ START2. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสุดทายเปน “0” เพื่อ

กําหนดการเขียนขอมูลไปยัง DS16213. รอรับสัญญาณ ACK จาก DS16214. สงคําสั่ง (Command) &HAC เพื่อเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะ5. รอรับสัญญาณ ACK จาก DS16216. สงขอมูลสําหรับรีจิสเตอรกําหนดการทํางานและแสดงสถานะ ไปที่ DS16217. รอรับสัญญาณ ACK จาก DS16218. สงสัญญาณ STOPสําหรับการเขาถึงรีจิสเตอรกําหนดการทํางานและแสดงสถานะสามารถเขียนโปรแกรม

ทดลองไดดังตอไปนี้1.10 สรางปุม 2 ปุมและ 1 TextBox เพิม่เติมและเปลี่ยนช่ือดังรูปที่ P1-2

รูปท่ี P1-2 หนาตาฟอรมของโปรแกรมทดลองอานคาอุณหภูมิจากไอซี DS1621บน บอรด EX-10 ท่ีมกีารเพิม่คําสัง่เพือ่อานและเขยีนคากบัรีจสิเตอรกาํหนดการทํางานของDS1621

Page 17: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 17

1.11 เปลี่ยนคุณสมบัติของคอนโทรลตางๆดังนี้Name cmdRdConfig

Caption Read Config

Name cmdWrConfig

Caption Write Config

Name txtConfig

Text

1.12 เพิ่มโปรแกรมที่เหตุการณ cmdRdConfig_Click เพื่ออานขอมูลจากรีจิสเตอรกําหนดการทาํงานและแสดงสถานะPrivate Sub cmdRdConfig_Click() I2CSTART Send8BIT &H90 Ack Send8BIT &HAC Ack I2CSTART Send8BIT &H91 Ack txtConfig.Text = Hex(Read8Bit) MNAck I2CSTOPEnd Sub

1.13 เพิม่โปรแกรมที่เหตุการณ cmdWrConfig_Click เพื่อเขียนขอมูลไปยังรีจิสเตอรกําหนดการทาํงานและแสดงสถานะPrivate Sub cmdWrConfig_Click() I2CSTART Send8BIT &H90 Ack Send8BIT &HAC Ack Send8BIT CByte(“&H” & txtConfig.Text) Ack I2CSTOPEnd Sub1.14 ทดลองต้ังคาบิต 1Shot ในรีจิสเตอรกําหนดการทํางานและแสดงสถานะ ใหเปน “0” เพื่อเขาสูโหมดแปลงคาตอเนื่อง โดยพิมพเลข 8 ใน txtConfig จากนั้นคลิ้กปุม Write Config แลวคลิ้กปุมStop Convert (ให DS1621 หยดุการทาํงาน เพือ่เปลีย่นโหมดการแปลงคา ) คลิก้ปุม Start Convertเพือ่เริม่อานอุณหภูมิอีกครั้งในโหมดการแปลงคาอุณหภูมิตอเนื่อง

สามารถดูรายละเอียดของโปรแกรมพรอมทดลองใชงานไดจากไฟล LAB15B.VBP

Page 18: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

18 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

การทดลองใช DS1621 ทํางานในโหมดเทอรโมสตัตการอานขอมลูจากรจิีสเตอร TH และ TL นัน้มข้ัีนตอนเหมอืนการอานรจิีสเตอร Temperature

แตคําสั่ง (Command) แตกตางกัน คือการอานรีจิสเตอร TH ใชคําสั่ง &HA1 สวน TL ใชคําสั่ง&HA2

สวนการเขียนขอมูลไปยังรีจิสเตอรทั้งสองมีข้ันตอนดังนี้1. สงสัญญาณ START2. สงขอมลูกาํหนดแอดเดรสบนบอรด EX-10 ให DS1621 โดยบิตสุดทายเปน “0” เพื่อ

กําหนดการเขียนขอมูลไปยัง DS16213. รอรับสัญญาณ ACK จาก DS16214. สงคําสั่ง (Command) &HA1 เพื่อเขาถึงรีจิสเตอร TH หรือคําสั่ง &HA2 สําหรับ TL5. รอรับสัญญาณ ACK จาก DS16216. สงขอมูล MSB ของ รีจิสเตอร TH / TL ไปที่ DS16217. รอรับสัญญาณ ACK จาก DS16218. สงขอมูล LSB ของ รีจิสเตอร TH / TL ไปที่ DS16219. รอรับสัญญาณ ACK จาก DS162110. สงสัญญาณ STOPในการติดตอกับรีจิสเตอร TH และ TL สามารถเขียนโปรแกรมทดลองไดดังนี้

1.15 เพิม่คอนโทรลและเปลีย่นช่ือดังรปูที ่P1-3

รูปท่ี P1-3 หนาตาของโปรแกรมทดลองอานและต้ังคาอณุหภูมกิบั DS1621 เมือ่กําหนดใหทํางานในโหมดเทอรโมสตัต

Page 19: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C 19

1.16 เพิ่มโปรแกรมใหกับเหตุการณ cmdRdTH_Click ดังนี้Private Sub cmdRdTH_Click()Dim tmp As DoubleDim datH As IntegerDim datL As Integer I2CSTART Send8BIT &H90 Ack Send8BIT &HA1 ‘Access TH Register Command Ack I2CSTART Send8BIT &H91 Ack datH = Read8Bit ‘Read MSB TH Register MAck datL = Read8Bit ‘Read LSB TH Register MNAck I2CSTOP If (datL And &H80) = &H80 Then tmp = datH + 0.5 Else tmp = datH End If txtTH.Text = tmpEnd Sub

จะเหน็ไดวา โปรแกรมสาํหรบัเหตุการณ cmdRdTL_Click นั้นเหมือนกับ cmdRdTH_Clickแตเปลี่ยน Command เปน &HA2 และเก็บคาลงใน txtTL.Text1.17 เขียนโปรแกรมใหกับเหตุการณ cmdWrTH_Click ดังนี้Private Sub cmdWrTH_Click()Dim tmp As DoubleDim datH As ByteDim datL As Byte datH = Fix(txtTH.Text) tmp = Val(txtTH.Text) - datH If tmp <> 0 Then datL = &H80 I2CSTART Send8BIT &H90

Page 20: EX-10EX-10 บอร ดวัดอุณหภูมิและเทอร โมสตัตผ านร Iะบบบ2C ัส 1 บอร ดวัดอุณหภูมิและเทอร

20 EX-10 บอรดวัดอุณหภูมิและเทอรโมสตัตผานระบบบัส I2C

Ack Send8BIT &HA1 ‘Access TH Register Command Ack Send8BIT datH Ack Send8BIT datL Ack I2CSTOPEnd Sub

จากโปรแกรมขางตน เหตุการณ cmdWrTL_Click ถูกแกไขใหรับคาจาก txtTL.Text และใช Command &HA21.18 รนัโปรแกรมแลวเขียนคา Config ใหเปน A คลิก้ปุม Write Config เพือ่กาํหนดโหมดการแปลงคาตอเนื่อง และให Thermostat ทํางานโหมด Active High1.19 ใสคา 30 ในชอง TH และ 28 ในชอง TL คลิ้กปุม Write ของ TH และ TL1.20 คลิก้ปุม Start Convert ให DS1621 เริ่มแปลงคาอุณหภูมิ ใชนิ้วหรือวัตถุอื่นแตะให DS1621เปลีย่นอณุหภูม ิคลิก้ปุม Read Temp สงัเกตอณุหภูมทิีอ่านได ถามคีามากกวา 30 LED บนบอรดEX-10 จะตดิพรอมกบัมเีสยีงและรเีลยทาํงานตามจ๊ัมเปอรทีต่ัง้ไว เมือ่อานคาจากรจิีสเตอรConfig จะมีคาเปน 2A เพราะบิต THF มีคาเปน “1” ทั้งนี้เปนผลมาจากอุณหภูมิที่วัดไดมีคามากกวา TH ที่ตั้งไว

สามารถดูรายละเอียดของโปรแกรมพรอมกับทดลองใชงานไดจากไฟล LAB15C.VBP ในแผนซีดีรอม (ซ่ึงอยูในชุดของ P-Board)