174
่ ผลการทํางานเปนแรงดันไฟฟามาเชื่อมตอกับชุดกลอง ในปฏิบัติ การนี้เปนการนําไอซีวัดอุณหภูมิทีให สมองกล IPST-MicroBOX (SE) เพือสร ่ างเปนเครื่องวัดอุณหภูมิระบบตัวเลขอยางงาย
รูจั กกับ MCP9701 ไอซีวัดอุณหภูมิ เปนอุปกรณตรวจจับและวัดอุณหภูมิทีให ่ ผลการทํางานเปนแรงดันไฟฟาแบบเชิงเสน รับรูการเปลี ยนแปลง ่ ของอุณหภูมิภายในเวลาไมถึง 2 วินาที เชื่อมตอกับอินพุตอะนาลอก A0 ถึง A6 ของแผงวงจรหลัก IPST-SE ได คุณสมบัติทางเทคนิคของ MCP9701 ทีควรทราบ ่ เปนไอซีวัดอุณหภูมิในกลุมเทอรมิสเตอรแบบแอกตีฟที่ใหผลการทํางานแบบเชิงเสน ยานวัด -40 ถึง +125 องศาเซลเซียส ผลการวัดอางอิงกับหนวยขององศาเซลเซียสโดยตรง ความผิดพลาดเฉลี่ย 2 องศาเซลเซียส ยานไฟเลี้ยง +3.1 ถึง +5.5V กินกระแสไฟฟาเพียง 6uA ใชแบตเตอรี่เปนแหลงจายไฟได คาแรงดันเอาตพุต
500mV (ที่ 0๐C) ถึง 2.9375V (ที่ 125๐)
คาแรงดันเอาตพุตตอการเปลียนแปลงอุ ่ ณหภูมิ 19.5mV/๐C ใชงานกับวงจรแปลงสัญญาณอะนาลอก
เปนดิจิตอลความละเอียดตั้งแต 8 บิตได โดยมีความคลาดเคลื่อนตํ่า
รูปที่ L7-1 การจัดขาของ MCP9701, หนาตาเมื่อตอสายสัญญาณพรอมใชงานและกราฟคุณสมบัติ
175
8 SCL 9 SDA
30 A6 27 A3
USB
24 A0
D
29 A5 26 A2
00 00000 000 0 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000 0000000000000 00000 000
Digital THERMO METER
ON
28 A4 25 A1
26.740
KNOB
Celsius
OK
UART1
16
18
17
19
+5
20
RESET
LOW
2 RxD1 3 TxD1
1
2
DC MOTOR
SW1
G 6V 12 G 6V 13 G 6V 14 G 6V 15
15 SV0 14 SV1 13 SV2 12 SV3
SERVO
รูปที่ L7-2 การตอวงจรเพือใช ่ งานชุดกลองสมองกล IPST-MicroBOX (SE) กับไอซีวัดอุณหภูมิ MCP9701
การเชื่อมตอทางฮารดแวร ่ ่อมตอกับไอซี MCP9701 เขากับจุดตอ A3 ของแผงวงจรหลัก IPST-SE ตอสายวัดอุณหภูมิทีเชื
ขั้นตอนการทดลอง 7.1 เขียนโปรแกรมที่ L7-1 บันทึกในชื่อ MCP9701_Thermometer.pde 7..2 คอมไพลและอัปโหลดโปรแกรมไปยังแผงวงจร IPST-SE โดยคลิกที่ปุม ้ ง สังเกตการทํางานที่ 7.3 รันโปรแกรม ทดลองใชมือจับที่ตัวไอซีวัดอุณหภูมิ หรือนําหัววัดอุณหภูมิไปแชในนําแข็ จอแสดงผลบนแผงวงจร IPST-SE แผงวงจร IPST-SE แสดงขอความแจงหนาที่การทํางาน และแสดงคาอุณหภูมิในหนวยองศาเซลเซียส (Celsius) ดวยความละเอียดทศนิยม 3 ตําแหนง โดยที่คาของอุณหภูมิจะแสดงดวยตัวเลขสีเหลืองขนาดใหญ (3x)
176
#include <ipst.h> int val,i; float Temp; void setup() { glcdClear(); setTextSize(2); } void loop() { glcd(1,2,"Digital"); glcd(2,2,"THERMO"); glcd(3,3,"METER"); val=0; for (i=0;i<20;i++) { val = val+analog(3); } val = val/20; Temp = (float(val)*0.25) - 20.51 ; setTextSize(3); setTextColor(GLCD_YELLOW); glcd(3,1,"%f",Temp); setTextColor(GLCD_WHITE); setTextSize(2); glcd(6,2,"Celsius"); delay(500);
// ผนวกไฟลไลบรารีหลัก // กําหนดตัวแปรเก็บคาทีอ่ านไดจาก MCP9701 // ประกาศตัวแปรคาอุณหภูมืในแบบทศนิยม // เคลียรจอแสดงผล // เลือกขนาดตัวอักษร 2 เทา
// แสดงขอความเริ่มตน
// กําหนดรอบการอานคาจาก MCP9701 รวม 20 ครั้ง // อานคาจากอินพุต A3 // หาคาเฉลี่ยจากการอานคา 20 ครั้ง // แปลงคาเปนอุณหภูมิในหนวยองศาเซลเซียส // เปลียนขนาดตั ่ วอักษรเปน 3 เทา // เปลียนสีตัวอักษรเปนสีเหลือง // แสดงคาอุณหภูมิดวยความละเอียดทศนิยม 3 ตําแหนง // เปลียนสีตัวอักษรเปนสีขาว // เปลียนขนาดตั ่ วอักษรเปน 2 เทา // แสดงหนวยองศาเซลเซียส // หนวงเวลากอนเริ่มตนการอานคาในรอบใหม
} คําอธิบายโปรแกรม ในโปรแกรมนี้หัวใจสําคัญคือ การคํานวณเพื่อเปลียนข ่ อมูลดิจิตอลทีได ่ จากการแปลงแรงดันเอาตพุต ของไอซี MCP9701 เปนคาอุณหภูมิในหนวยองศาเซลเซียส กระบวนการจะเริ่มจากการอานและแปลงคาของ แรงดันไฟตรงทีจุ่ ดตอ A3 ซึงได ่ มาจากการทํางานของไอซี MCP9701 มาเก็บไวในตัวแปร val จากนันนํ ้ าขอมูล ทีได ่ มาคํานวณดวยสูตร Temp = (val x 0.25) - 20.51 จากนั้นนําคาอุณหภูมิไดมาแสดงผลดวยความละเอียด ทศนิยม 3 ตําแหนง
โปรแกรมที่ L7-1 : ไฟล MCP9701_Thermometer.pde โปรแกรมภาษา C/C++ สําหรับพัฒนากลอง สมองกล IPST-MicroBOX (SE) เปนเครื่องวัดอุณหภูมิระบบตัวเลขอยางงาย