สารบัญ:

การวัดอุณหภูมิโดยใช้ PT100 และ Arduino: 16 ขั้นตอน
การวัดอุณหภูมิโดยใช้ PT100 และ Arduino: 16 ขั้นตอน

วีดีโอ: การวัดอุณหภูมิโดยใช้ PT100 และ Arduino: 16 ขั้นตอน

วีดีโอ: การวัดอุณหภูมิโดยใช้ PT100 และ Arduino: 16 ขั้นตอน
วีดีโอ: การใช้งาน RTD PT100 2024, กรกฎาคม
Anonim
การวัดอุณหภูมิโดยใช้ PT100 และ Arduino
การวัดอุณหภูมิโดยใช้ PT100 และ Arduino

จุดมุ่งหมายของโครงการนี้คือการออกแบบ สร้าง และทดสอบระบบตรวจจับอุณหภูมิ ระบบถูกออกแบบมาเพื่อวัดช่วงอุณหภูมิ 0 ถึง 100 °C PT100 ใช้ในการวัดอุณหภูมิและเป็นเครื่องตรวจจับอุณหภูมิความต้านทาน (RTD) ที่เปลี่ยนความต้านทานขึ้นอยู่กับอุณหภูมิโดยรอบ

ขั้นตอนที่ 1: เครื่องมือ

1x PT100

1x เขียงหั่นขนม

ตัวต้านทาน 2x 2.15 kohms

ตัวต้านทาน 1x100 โอห์ม

สายไฟ

แหล่งจ่ายไฟ

แอมพลิฟายเออร์ดิฟเฟอเรนเชียล

ขั้นตอนที่ 2: เกี่ยวกับ PT100

เกี่ยวกับ PT100
เกี่ยวกับ PT100

ในฐานะที่เป็นส่วนหนึ่งของโครงการของเรา เราได้รับมอบหมายให้วัดอุณหภูมิแวดล้อมตั้งแต่ 0 ถึง 100 องศาเซลเซียส เราตัดสินใจใช้ PT100 ด้วยเหตุผลดังต่อไปนี้:

PT100 เป็นเครื่องตรวจจับอุณหภูมิความต้านทาน (RTD) ซึ่งสามารถวัดอุณหภูมิได้ตั้งแต่ -200 องศาถึงสูงสุด 850 องศาเซลเซียส แต่ปกติจะไม่ใช้ในการวัดอุณหภูมิที่เกิน 200 องศา ช่วงนี้เป็นไปตามข้อกำหนดของเรา

เซ็นเซอร์นี้สร้างความต้านทานสำหรับอุณหภูมิแวดล้อมที่กำหนด ความสัมพันธ์ระหว่างอุณหภูมิและความต้านทานของเซ็นเซอร์เป็นแบบเส้นตรง ควบคู่ไปกับการตั้งค่าขั้นต่ำที่เซ็นเซอร์ต้องการ ทำให้ง่ายต่อการใช้งานและแท่นบูชาหากต้องการช่วงอุณหภูมิอื่นๆ ในอนาคต

PT100 ยังมีเวลาตอบสนองช้าแต่แม่นยำ ลักษณะเหล่านี้ไม่มีผลกระทบต่อเป้าหมายของเรามากนัก จึงไม่มีอิทธิพลในการตัดสินใจเลือกเซ็นเซอร์อุณหภูมิที่จะใช้

ขั้นตอนที่ 3: สะพานวีตสโตน

สะพานวีตสโตน
สะพานวีตสโตน

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

ประโยชน์หลักของวงจรคือความสามารถในการรับช่วงแรงดันเอาต์พุตที่เริ่มต้นที่ 0V

สามารถใช้ตัวแบ่งแรงดันไฟแบบธรรมดาได้ แต่จะไม่อนุญาตให้เรากำจัดออฟเซ็ตที่มีอยู่ ซึ่งจะทำให้การขยายแรงดันเอาต์พุตมีประสิทธิภาพน้อยลง

ความต้านทานใน PT100 จะแตกต่างกันไปตั้งแต่ 100 ถึง 138.5055 สำหรับอุณหภูมิ 0 ถึง 100 องศาเซลเซียส

สูตรสำหรับสะพานหินวีทอยู่ด้านล่าง ซึ่งสามารถใช้ในการปรับขนาดสะพานหินวีทสโตนสำหรับช่วงต่างๆ ที่ได้รับจากตาราง pdf ที่แนบมา

Vout=วิน(R2/(R1+R2) - R4/(R3+R4))

ในสถานการณ์ของเรา:

R2 จะเป็นแนวต้าน PT100 ของเรา

R1 จะเท่ากับ R3

R4 ต้องเท่ากับ 100 โอห์มเพื่อส่งออก 0V ที่ 0 องศาเซลเซียส

การตั้งค่า Vout เป็น 0V และ Vin เป็น 5V ช่วยให้เราสามารถต้านทานรับค่า R1 และ R2 = 2.2k ohms

จากนั้นเราสามารถย่อยค่าความต้านทานของเซ็นเซอร์ได้ที่ 138.5055 โอห์ม เพื่อให้ได้แรงดันเอาต์พุตที่ 100 องศาเซลเซียส = 80mV

ขั้นตอนที่ 4: จำลองวงจร

การจำลองวงจร
การจำลองวงจร

เครื่องมือสำหรับการจำลองวงจร OrCAD Capture ใช้เพื่อจำลองวงจรของเราและค้นหาเอาต์พุตแรงดันไฟที่คาดหวังที่อุณหภูมิต่างๆ ซึ่งจะใช้ในภายหลังเพื่อเปรียบเทียบความแม่นยำของระบบของเรา

วงจรนี้จำลองโดยทำการวิเคราะห์เวลาชั่วคราวด้วยการกวาดแบบพารามาติกที่เปลี่ยนความต้านทาน pt100 จาก 100 โอห์มเป็น 138.5055 โอห์ม โดยเพิ่มขั้นที่ 3.85055 โอห์ม

ขั้นตอนที่ 5: ผลลัพธ์จำลอง

ผลลัพธ์จำลอง
ผลลัพธ์จำลอง

ผลลัพธ์ข้างต้นแสดงความสัมพันธ์เชิงเส้นของแรงดันไฟขาออกของวงจรและค่าความต้านทาน

ผลลัพธ์ถูกป้อนลงใน excel และวางแผน Excel มีสูตรเชิงเส้นที่เกี่ยวข้องกับค่าเหล่านี้ การยืนยันความเป็นเส้นตรงและช่วงแรงดันเอาต์พุตของเซ็นเซอร์

ขั้นตอนที่ 6: การสร้างวงจร

การสร้างวงจร
การสร้างวงจร

วงจรถูกประกอบเข้าด้วยกันโดยใช้ตัวต้านทาน 2.2k โอห์มสองตัวและตัวต้านทาน 100 โอห์ม

ตัวต้านทานมีความทนทาน +-5% ค่าความต้านทานที่แตกต่างกันทำให้บริดจ์ไม่สมดุลที่ 0 องศา

ตัวต้านทานแบบขนานถูกเพิ่มเป็นอนุกรมให้กับตัวต้านทาน 100 โอห์ม เพื่อเพิ่มจำนวนความต้านทานเล็กน้อยเพื่อให้ได้ R4 ใกล้เคียงกับ 100 โอห์มมากที่สุด

สิ่งนี้สร้างแรงดันเอาต์พุต 0.00021V ซึ่งใกล้เคียงกับ 0V มาก

R1 คือ 2, 1638 โอห์ม และ R3 คือ 2, 1572 โอห์ม สามารถเชื่อมต่อตัวต้านทานเพิ่มเติมเพื่อทำให้ R1 และ R3 เท่ากัน ทำให้เกิดบริดจ์ที่สมดุลอย่างสมบูรณ์

ข้อผิดพลาดที่เป็นไปได้:

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

ขั้นตอนที่ 7: ผลลัพธ์ที่วัดได้

ผลลัพธ์ที่วัดได้
ผลลัพธ์ที่วัดได้

ผลลัพธ์ที่วัดได้สามารถดูได้ด้านล่าง

วัดการเปลี่ยนแปลงของอุณหภูมิโดยใช้กล่องตัวต้านทานแบบปรับค่าได้ เพื่อตั้งค่าความต้านทานของ R2 เป็นค่าความต้านทานต่างๆ ที่สามารถพบได้ในแผ่นข้อมูล PT100

สูตรที่พบในนี้จะใช้เป็นส่วนหนึ่งของรหัสเพื่อกำหนดอุณหภูมิที่ส่งออก

ขั้นตอนที่ 8: สำหรับช่วงอุณหภูมิที่กว้างกว่ามาก

สำหรับช่วงอุณหภูมิที่กว้างกว่ามาก
สำหรับช่วงอุณหภูมิที่กว้างกว่ามาก

เทอร์โมคัปเปิล Type K สามารถนำมาใช้ในวงจรได้หากต้องการบันทึกอุณหภูมิที่สูงมาก เทอร์โมคัปเปิลชนิด K สามารถวัดอุณหภูมิได้ตั้งแต่ -270 ถึง 1370 องศาเซลเซียส

เทอร์โมคัปเปิลทำงานโดยอิงจากเอฟเฟกต์เทอร์โมอิเล็กทริก ความแตกต่างของอุณหภูมิทำให้เกิดความต่างศักย์ (แรงดัน)

เนื่องจากเทอร์โมคัปเปิลทำงานโดยยึดตามความแตกต่างของอุณหภูมิสองอุณหภูมิ จึงจำเป็นต้องทราบอุณหภูมิที่จุดเชื่อมต่ออ้างอิง

มีสองวิธีในการวัดด้วยเทอร์โมคัปเปิลที่เราสามารถใช้ได้:

สามารถวางเซ็นเซอร์ PT100 ที่จุดเชื่อมต่ออ้างอิงและวัดแรงดันอ้างอิงได้

จุดต่ออ้างอิงของเทอร์โมคัปเปิลสามารถวางในอ่างน้ำแข็งซึ่งจะมีค่าคงที่ 0 องศาเซลเซียส แต่จะใช้งานไม่ได้สำหรับโครงการนี้

ขั้นตอนที่ 9: ภาพรวม: ระยะแอมพลิฟายเออร์ดิฟเฟอเรนเชียล

ภาพรวม: ระยะแอมพลิฟายเออร์ดิฟเฟอเรนเชียล
ภาพรวม: ระยะแอมพลิฟายเออร์ดิฟเฟอเรนเชียล

ดิฟเฟอเรนเชียลแอมพลิฟายเออร์เป็นส่วนสำคัญในการสร้าง แอมพลิฟายเออร์ดิฟเฟอเรนเชียลรวมเอาแอมพลิฟายเออร์ที่ไม่กลับด้านและกลับด้านเข้าด้วยกันเป็นวงจรเดียว แน่นอน เช่นเดียวกับงานสร้างใดๆ ก็ตาม ที่มาพร้อมกับข้อจำกัดของตัวเอง อย่างไรก็ตาม ดังที่จะแสดงในไม่กี่ขั้นตอนถัดไป มันช่วยให้ได้เอาต์พุตที่ถูกต้องของ 5V อย่างแน่นอน

ขั้นตอนที่ 10: เกี่ยวกับดิฟเฟอเรนเชียลแอมพลิฟายเออร์

เกี่ยวกับดิฟเฟอเรนเชียลแอมพลิฟายเออร์
เกี่ยวกับดิฟเฟอเรนเชียลแอมพลิฟายเออร์

แอมพลิฟายเออร์ดิฟเฟอเรนเชียลเป็นแอมพลิฟายเออร์ในการดำเนินงาน มีบทบาทสำคัญในการออกแบบวงจรนี้เพื่อขยายเอาต์พุตแรงดันไฟฟ้าจากสะพานวีตสโตนในหน่วย mV เป็น V จากนั้น Arduino จะอ่านค่าแรงดันไฟฟ้าขาเข้า แอมพลิฟายเออร์นี้ใช้อินพุตแรงดันไฟฟ้าสองตัวและขยายความแตกต่างระหว่างสัญญาณทั้งสอง นี่เรียกว่าอินพุตแรงดันดิฟเฟอเรนเชียล อินพุตแรงดันไฟฟ้าต่างกันจะถูกขยายโดยแอมพลิฟายเออร์ และสามารถสังเกตได้ที่เอาต์พุตของแอมพลิฟายเออร์ อินพุตของเครื่องขยายเสียงได้มาจากตัวแบ่งแรงดันไฟฟ้าของสะพานวีตสโตนในส่วนก่อนหน้า

ขั้นตอนที่ 11: ประโยชน์และข้อจำกัด

แอมพลิฟายเออร์ดิฟเฟอเรนเชียลมาพร้อมกับข้อดีและข้อเสียของตัวเอง ประโยชน์หลักของการใช้แอมพลิฟายเออร์ดังกล่าวคือความสะดวกในการก่อสร้าง ด้วยโครงสร้างที่ง่ายนี้ ทำให้การแก้ไขปัญหาที่พบกับวงจรง่ายขึ้นและมีประสิทธิภาพมากขึ้น

ข้อเสียของการใช้วงจรดังกล่าวคือเพื่อปรับเกนของแอมพลิฟายเออร์ ตัวต้านทานกำหนดเกน (ตัวต้านทานตอบรับและตัวต้านทานต่อกราวด์) จะต้องถูกปิดทั้งคู่ ซึ่งอาจใช้เวลานาน ประการที่สอง op-amp มี CMRR ที่ค่อนข้างต่ำ (อัตราส่วนการปฏิเสธโหมดทั่วไป) ซึ่งไม่เหมาะสำหรับการบรรเทาอิทธิพลของแรงดันออฟเซ็ตอินพุต ดังนั้นในการกำหนดค่าเช่นเดียวกับของเรา การมี CMRR สูงจึงเป็นสิ่งสำคัญในการลดผลกระทบของแรงดันไฟฟ้าออฟเซ็ต

ขั้นตอนที่ 12: การเลือกเกนเอาต์พุตที่ต้องการ

op-amp มีตัวต้านทาน 4 ตัวที่เชื่อมต่อกับวงจร ตัวต้านทานที่ตรงกัน 2 ตัวที่อินพุตแรงดันไฟฟ้า อีกตัวเชื่อมต่อกับกราวด์เช่นเดียวกับตัวต้านทานป้อนกลับ ตัวต้านทานสองตัวนี้ทำหน้าที่เป็นอิมพีแดนซ์อินพุตของ op-amp โดยปกติ ตัวต้านทานในช่วง 10-100 กิโลโอห์มน่าจะเพียงพอ แต่เมื่อตั้งค่าตัวต้านทานเหล่านี้แล้ว เกนสามารถกำหนดได้โดยการปล่อยให้เอาต์พุตที่ต้องการได้รับเท่ากับอัตราส่วนของตัวต้านทานป้อนกลับต่อตัวต้านทานอินพุตที่อินพุตตัวใดตัวหนึ่ง (อ./ริน).

ตัวต้านทานต่อกราวด์และตัวต้านทานป้อนกลับถูกจับคู่ เหล่านี้เป็นตัวต้านทานที่กำหนดอัตราขยาย การมีอิมพีแดนซ์อินพุตสูงช่วยลดผลกระทบจากการโหลดบนวงจร เช่น การป้องกันไม่ให้กระแสไฟฟ้าไหลผ่านอุปกรณ์ในปริมาณมาก ซึ่งอาจส่งผลร้ายแรงหากไม่มีการควบคุม

ขั้นตอนที่ 13: ARDUINO MICROCONTROLLER

ไมโครคอนโทรลเลอร์ ARDUINO
ไมโครคอนโทรลเลอร์ ARDUINO

Arduino เป็นไมโครคอนโทรลเลอร์ที่ตั้งโปรแกรมได้ซึ่งมีพอร์ต I/O แบบดิจิตอลและแอนะล็อก ไมโครคอนโทรลเลอร์ถูกตั้งโปรแกรมให้อ่านแรงดันไฟฟ้าจากแอมพลิฟายเออร์ผ่านพินอินพุตแบบอะนาล็อก ขั้นแรก Arduino จะอ่านแรงดันไฟฟ้าจากช่วงเอาต์พุตของวงจร 0-5 V และแปลงเป็น 0-1023 DU และจะพิมพ์ค่าออกมา ถัดไป ค่าแอนะล็อกจะถูกคูณด้วย 5 และหารด้วย 1023 เพื่อให้ได้ค่าแรงดันไฟ ค่านี้จะถูกคูณด้วย 20 เพื่อให้ได้มาตราส่วนที่แน่นอนสำหรับช่วงอุณหภูมิตั้งแต่ 0-100 C

เพื่อให้ได้ค่าออฟเซ็ตและความไว การอ่านค่าจากพินอินพุตบน A0 นั้นใช้ค่าที่แตกต่างกันสำหรับ PT100 และกราฟถูกพล็อตเพื่อให้ได้สมการเชิงเส้น

รหัสที่ใช้:

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); //เริ่มการเชื่อมต่อแบบอนุกรมกับคอมพิวเตอร์

โหมดพิน (A0, INPUT); //เอาต์พุตจากเครื่องขยายเสียงจะเชื่อมต่อกับพินนี้

}

วงเป็นโมฆะ ()

{ ออฟเซ็ตลอย = 6.4762;

ความไวของลอย = 1.9971;

int AnalogValue = analogRead (A0); // อ่านอินพุตบน A0

Serial.print("ค่าอนาล็อก: ");

Serial.println (AnalogValue); //พิมพ์ค่าอินพุต

ล่าช้า (1000);

float DigitalValue = (AnalogValue * 5) / (1023); //mul โดย 5 เพื่อให้ช่วง 0-100 องศา

Serial.print("ค่าดิจิตอล: ");

Serial.println (DigitalValue); //ค่าแรงดันอนาล็อก

float temp = (AnalogValue - offset)/ความไว;

Serial.print("ค่าอุณหภูมิ: ");

Serial.println(ชั่วคราว); //พิมพ์ชั่วคราว

ล่าช้า (5000);

}

ขั้นตอนที่ 14: การแก้ไขปัญหา

การจ่ายไฟ 15V ให้กับ op-amp และ 5V ไปยังสะพาน wheatstone และ arduino ต้องมีพื้นร่วม (ค่า 0v ทั้งหมดต้องเชื่อมต่อเข้าด้วยกัน)

โวลต์มิเตอร์สามารถใช้เพื่อให้แน่ใจว่าแรงดันไฟตกหลังจากตัวต้านทานทุกตัว เพื่อช่วยให้แน่ใจว่าไม่มีการลัดวงจร

หากผลลัพธ์แตกต่างกันและไม่สอดคล้องกัน สามารถทดสอบสายไฟที่ใช้ได้โดยใช้โวลต์มิเตอร์เพื่อวัดความต้านทานของเส้นลวด หากความต้านทานระบุว่า "ออฟไลน์" แสดงว่ามีความต้านทานไม่จำกัดและลวดมีวงจรเปิด

สายไฟควรน้อยกว่า 10 โอห์ม

ความแตกต่างของแรงดันไฟฟ้าข้ามสะพานหินวีทสโตนควรเป็น 0V ที่ช่วงต่ำสุดของช่วงอุณหภูมิ หากบริดจ์ไม่สมดุล อาจเป็นเพราะ:

ตัวต้านทานมีความทนทาน ซึ่งหมายความว่าอาจมีข้อผิดพลาดซึ่งอาจทำให้สะพานหินวีทสโตนไม่สมดุล ความต้านทานสามารถตรวจสอบได้ด้วยโวลต์มิเตอร์หากถอดออกจากวงจร สามารถเพิ่มตัวต้านทานที่มีขนาดเล็กลงในอนุกรมหรือขนานกันเพื่อปรับสมดุลของบริดจ์

Rseries=r1+r2

1/Rขนาน =1/r1 + 1/r2

ขั้นตอนที่ 15: การปรับขนาด

สูตรและวิธีการปรับขนาดระบบสำหรับอุณหภูมิที่ต่างกันสามารถพบได้ในส่วนสะพานหินวีทสโตน เมื่อพบค่าเหล่านี้และตั้งค่าวงจรแล้ว:

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

แรงดันไฟและความต้านทานที่วัดได้ และควรพล็อตใน excel โดยมีอุณหภูมิ (ความต้านทาน) บนแกน x และแรงดันบนแกน y

จะได้สูตรจากพล็อตนี้ ออฟเซ็ตจะเป็นค่าคงที่ที่เพิ่มเข้ามา และความไวจะเป็นตัวเลขคูณด้วย x

ควรเปลี่ยนค่าเหล่านี้ในโค้ด และคุณได้ปรับสเกลระบบสำเร็จแล้ว

ขั้นตอนที่ 16: การตั้งค่า Arduino

เชื่อมต่อเอาต์พุตของวงจรแอมป์เข้ากับพินอินพุต A0 ของ Arduino

เชื่อมต่อ Arduino Nano ผ่านพอร์ต USB บนพีซี

วางโค้ดลงในพื้นที่ทำงานสเก็ตช์ Arduino

รวบรวมรหัส

เลือก เครื่องมือ > บอร์ด > เลือก Arduino Nano

เลือก เครื่องมือ > พอร์ต > เลือกพอร์ต COM

อัปโหลดรหัสไปยัง Arduino

ค่าดิจิตอลที่ส่งออกคือแรงดันเอาต์พุตของ op-amp (ควรเป็น 0-5V)

ค่าอุณหภูมิคือระบบอ่านอุณหภูมิในหน่วยเซลเซียส

แนะนำ: