เทอร์โมมิเตอร์บนไมโครคอนโทรลเลอร์ PIC16F628A และ DS18B20 (DS18S20) - บทความที่มีคำอธิบายโดยละเอียดของวงจรเทอร์โมมิเตอร์หน่วยความจำและนอกจากนี้ความต่อเนื่องเชิงตรรกะของบทความที่ฉันเผยแพร่ก่อนหน้านี้บนเว็บไซต์ Yandex pichobbi.narod.ru เทอร์โมมิเตอร์นี้พิสูจน์ตัวเองได้ค่อนข้างดีและได้ตัดสินใจที่จะปรับปรุงให้ทันสมัยขึ้นเล็กน้อย ในบทความนี้ ฉันจะบอกคุณว่ามีการเปลี่ยนแปลงอะไรบ้างในโครงการและ โปรแกรมการทำงานผมจะอธิบายฟังก์ชั่นใหม่ บทความนี้จะเป็นประโยชน์สำหรับผู้เริ่มต้น จัดแจงใหม่ในภายหลัง รุ่นปัจจุบันเทอร์โมมิเตอร์ใน.

เทอร์โมมิเตอร์บนไมโครคอนโทรลเลอร์ PIC16F628A และ DS18B20 (DS18S20) สามารถ:

  • วัดและแสดงอุณหภูมิในช่วง:
    -55...-10 และ +100...+125 ด้วยความแม่นยำ 1 องศา (ds18b20 และ ds18s20)
    -อยู่ในช่วง -9.9...+99.9 ด้วยความแม่นยำ 0.1 องศา (ds18b20)
    -ในช่วง -9.5...+99.5 ด้วยความแม่นยำ 0.5 องศา (ds18s20)
  • ตรวจจับเซ็นเซอร์ DS18B20 หรือ DS18S20 โดยอัตโนมัติ
  • ตรวจสอบความล้มเหลวของเซ็นเซอร์โดยอัตโนมัติ
  • จำอุณหภูมิที่วัดได้สูงสุดและต่ำสุด

เทอร์โมมิเตอร์ยังช่วยให้เปลี่ยนตัวบ่งชี้ 7 ส่วนจาก OK เป็นตัวบ่งชี้ที่มี OA ได้อย่างง่ายดาย มีการจัดขั้นตอนการเขียนลงในหน่วยความจำ EEPROM ของไมโครคอนโทรลเลอร์อย่างอ่อนโยน โวลต์มิเตอร์ที่พิสูจน์ตัวเองได้ดีมีการอธิบายไว้ในบทความนี้ -

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

แผนผังของเครื่องวัดอุณหภูมิแสดงในรูปที่ 1

รูปที่ 1 - แผนผังของเทอร์โมมิเตอร์บน PIC16F628A + ds18b20/ds18s20

อธิบายทั้งหมด แผนภาพฉันจะไม่ใช้เทอร์โมมิเตอร์ เพราะมันค่อนข้างง่าย ฉันจะเน้นไปที่คุณสมบัติต่างๆ เท่านั้น

ใช้เป็นไมโครคอนโทรลเลอร์ PIC16F628Aจากไมโครชิป นี่เป็นคอนโทรลเลอร์ที่มีราคาไม่แพงและไม่ขาดแคลนอีกด้วย

เซ็นเซอร์ดิจิตอลใช้ในการวัดอุณหภูมิ DS18B20หรือ DS18S20จากแม็กซิม เซ็นเซอร์เหล่านี้มีราคาไม่แพง ขนาดเล็ก และข้อมูลเกี่ยวกับอุณหภูมิที่วัดได้จะถูกส่งแบบดิจิทัล วิธีนี้ช่วยให้คุณไม่ต้องกังวลกับหน้าตัดของสายไฟ ความยาว ฯลฯ เซนเซอร์ DS18B20,DS18S20สามารถทำงานได้ในช่วงอุณหภูมิตั้งแต่ -55… +125 °C

อุณหภูมิจะแสดงบนไฟ LED แสดงสถานะ 7 ส่วน 3 หลักพร้อมแคโทดร่วม (OK) หรือด้วย (OA)

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

การใช้ปุ่ม SA1 คุณสามารถสลับเซ็นเซอร์ได้อย่างรวดเร็ว (ถนน บ้าน)

จำเป็นต้องใช้จัมเปอร์เพื่อเปลี่ยนสายไฟทั่วไปสำหรับไฟ LED สำคัญ!หากตัวบ่งชี้เป็นปกติเราจะวางจัมเปอร์ไว้ที่ตำแหน่งด้านล่างตามแผนภาพและประสานทรานซิสเตอร์ VT1-VT3 ที่มีค่าการนำไฟฟ้า p-n-p หากไฟ LED เป็น OA เราจะย้ายจัมเปอร์ไปที่ตำแหน่งบนตามแผนภาพและประสานทรานซิสเตอร์ VT1-VT3 ที่มีค่าการนำไฟฟ้า n-p-n

ในตารางที่ 1 คุณสามารถดูรายการชิ้นส่วนทั้งหมดและการทดแทนที่เป็นไปได้ด้วยอะนาล็อก

ตารางที่ 1 รายการชิ้นส่วนสำหรับประกอบเทอร์โมมิเตอร์
การกำหนดตำแหน่ง ชื่อ อนาล็อก/ทดแทน
ซี1, ซี2 ตัวเก็บประจุเซรามิก - 0.1 μFx50V -
ค3 ตัวเก็บประจุด้วยไฟฟ้า - 220μFx10V
ดีดี1 ไมโครคอนโทรลเลอร์ PIC16F628A PIC16F648A
DD2,DD3 เซ็นเซอร์อุณหภูมิ DS18B20 หรือ DS18S20
GB1 แบตเตอรี่ AA 1.5V จำนวน 3 ก้อน
HG1 ไฟ LED แสดงสถานะ 7 ส่วน KEM-5631-ASR (ตกลง) พลังงานต่ำอื่นๆ สำหรับตัวบ่งชี้แบบไดนามิกและเหมาะสำหรับการเชื่อมต่อ
R1,R3,R14,R15 ตัวต้านทาน 0.125W 5.1 โอห์ม เอสเอ็มดี ขนาด 0805
R2,R16 ตัวต้านทาน 0.125W 5.1 kOhm เอสเอ็มดี ขนาด 0805
R4,R13 ตัวต้านทาน 0.125W 4.7 kOhm เอสเอ็มดี ขนาด 0805
R17-R19 ตัวต้านทาน 0.125W 4.3 kOhm เอสเอ็มดี ขนาด 0805
R5-R12 ตัวต้านทาน 0.125W 330 โอห์ม เอสเอ็มดี ขนาด 0805
SA1 สวิตช์ที่เหมาะสม
เอสบี1 ปุ่มชั้นเชิง
VT1-VT3 ทรานซิสเตอร์ BC556B สำหรับไฟแสดงที่มี OK/ทรานซิสเตอร์ BC546B สำหรับไฟแสดงที่มี OA KT3107/KT3102
เอ็กซ์ที1 เทอร์มินอลบล็อคสำหรับ 3 หน้าสัมผัส

สำหรับการดีบักเทอร์โมมิเตอร์แบบดิจิตอลเบื้องต้น มีการใช้แบบจำลองเสมือนที่สร้างใน Proteus ในรูปที่ 2 คุณสามารถดูแบบจำลองที่เรียบง่ายใน Proteus

รูปที่ 2 – แบบจำลองเทอร์โมมิเตอร์บนไมโครคอนโทรลเลอร์ PIC16F628A ใน Proteus

รูปที่ 3-4 แสดงแผงวงจรของเทอร์โมมิเตอร์แบบดิจิตอล

รูปที่ 3 – แผงวงจรพิมพ์เทอร์โมมิเตอร์บนไมโครคอนโทรลเลอร์ PIC16F628A (ด้านล่าง) ไม่ได้ปรับขนาด

รูปที่ 4 – แผงวงจรพิมพ์ของเทอร์โมมิเตอร์บนไมโครคอนโทรลเลอร์ PIC16F628A (ด้านบน) ที่ไม่ได้ปรับขนาด

เทอร์โมมิเตอร์ประกอบชิ้นส่วนเริ่มทำงานได้ทันทีและไม่จำเป็นต้องแก้ไขจุดบกพร่อง

ผลลัพธ์ของงานคือรูปที่ 5-7

รูปที่ 5 - รูปร่างเครื่องวัดอุณหภูมิ

รูปที่ 6 - ลักษณะของเทอร์โมมิเตอร์

รูปที่ 7 - ลักษณะของเทอร์โมมิเตอร์

สำคัญ!ในเฟิร์มแวร์ของเทอร์โมมิเตอร์ ไม่ได้เย็บเข้าการโฆษณาสามารถใช้เพื่อความสุขของคุณได้

การแก้ไขโปรแกรมการทำงาน:

1 การตรวจจับอัตโนมัติของเซ็นเซอร์ DS18B20 หรือ DS18S20

2. เวลาในการเขียนใหม่ใน EEPROM ลดลง (หากตรงตามเงื่อนไขในการเขียนใหม่) จาก 5 นาทีเหลือ 1 นาที

3. เพิ่มความถี่การกะพริบของจุด;

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

บอร์ดที่เสร็จแล้วเข้ากันได้อย่างลงตัวกับนาฬิกาปลุกจีน (รูปที่ 8, 9)

รูปที่ 8 – สิ่งของทั้งหมดที่อยู่ในนาฬิกาปลุกจีน

รูปที่ 9 - การกรอกนาฬิกาปลุกจีนทั้งหมด

วิดีโอ - การทำงานของเทอร์โมมิเตอร์บน PIC16F628A

ทางด้านเอ็มเค. หัวใจของมันคือไมโครคอนโทรลเลอร์ PIC16F628A วงจรเทอร์โมมิเตอร์ใช้ไฟ LED 4 หลักหรือ 2+2 พร้อมขั้วบวกทั่วไป เซ็นเซอร์อุณหภูมิที่ใช้คือประเภท DS18B20 และในกรณีของฉัน ค่าที่อ่านได้จากเซ็นเซอร์จะแสดงด้วยความแม่นยำ 0.5*C เทอร์โมมิเตอร์มีขีดจำกัดการวัดอุณหภูมิตั้งแต่ -55 ถึง +125*C ซึ่งเพียงพอสำหรับทุกโอกาส ในการจ่ายไฟให้กับเทอร์โมมิเตอร์ มีการใช้เครื่องชาร์จปกติจากโทรศัพท์มือถือบน IP ที่มีทรานซิสเตอร์ 13001

แผนผังของเทอร์โมมิเตอร์บนไมโครคอนโทรลเลอร์ PIC16F628A:

ในการแฟลชเฟิร์มแวร์ PIC16F628A ฉันใช้โปรแกรม ProgCode ติดตั้งบนคอมพิวเตอร์และประกอบโปรแกรมเมอร์ ProgCode ตามรูปแบบที่รู้จักกันดี:

การกำหนดพินของไมโครคอนโทรลเลอร์ที่ใช้และ pinout ของ MK อื่น ๆ ที่คล้ายกัน:

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

เทอร์โมคัปเปิ้ลเป็นเซ็นเซอร์วัดอุณหภูมิชนิดหนึ่งที่สามารถใช้ในอุปกรณ์ตรวจวัดและระบบอัตโนมัติ มีข้อดีบางประการ: ต้นทุนต่ำ ความแม่นยำสูง ช่วงการวัดที่กว้างเมื่อเทียบกับเทอร์มิสเตอร์และวงจรไมโครเซ็นเซอร์อุณหภูมิแบบดิจิตอล ความเรียบง่ายและความน่าเชื่อถือ อย่างไรก็ตาม แรงดันเอาต์พุตของเทอร์โมคัปเปิลมีขนาดเล็กและสัมพันธ์กัน และวงจรของมิเตอร์เทอร์โมคัปเปิลนั้นซับซ้อน เนื่องจากมีข้อกำหนดที่เข้มงวดสำหรับการขยายสัญญาณจากเทอร์โมคัปเปิลอย่างแม่นยำและสำหรับวงจรชดเชย ในการพัฒนาอุปกรณ์ดังกล่าว มีวงจรไมโครเฉพาะที่รวมวงจรการแปลงและประมวลผลสัญญาณอะนาล็อกเข้าด้วยกัน เมื่อใช้ไมโครวงจรเหล่านี้คุณสามารถสร้างเครื่องวัดอุณหภูมิที่ค่อนข้างกะทัดรัดโดยมีเทอร์โมคัปเปิลเป็นเซ็นเซอร์ (รูปที่ 1)

หลักการ

Wikipedia กำหนดหลักการทำงานของเทอร์โมคัปเปิ้ลดังนี้:

หลักการทำงานขึ้นอยู่กับเอฟเฟกต์ Seebeck หรืออีกนัยหนึ่งคือเอฟเฟกต์เทอร์โมอิเล็กทริก มีความต่างศักย์หน้าสัมผัสระหว่างตัวนำที่เชื่อมต่ออยู่ ถ้าข้อต่อของตัวนำที่ต่ออยู่ในวงแหวนมีอุณหภูมิเท่ากัน ผลรวมของความต่างศักย์ดังกล่าวจะเท่ากับศูนย์ เมื่อข้อต่ออยู่ที่อุณหภูมิที่แตกต่างกัน ความต่างศักย์ระหว่างข้อต่อเหล่านั้นจะขึ้นอยู่กับความแตกต่างของอุณหภูมิ ค่าสัมประสิทธิ์สัดส่วนในการพึ่งพานี้เรียกว่าสัมประสิทธิ์เทอร์โม-EMF โลหะต่างชนิดกันมีค่าสัมประสิทธิ์แรงเคลื่อนไฟฟ้าเทอร์โมต่างกัน ดังนั้นความต่างศักย์ที่เกิดขึ้นระหว่างปลายของตัวนำต่างกันก็จะแตกต่างกัน ด้วยการวางจุดเชื่อมต่อของโลหะที่มีค่าสัมประสิทธิ์เทอร์โม-EMF ที่ดีเยี่ยมในสภาพแวดล้อมที่มีอุณหภูมิ T1 เราจะได้แรงดันไฟฟ้าระหว่างหน้าสัมผัสตรงข้ามซึ่งอยู่ที่อุณหภูมิที่แตกต่างกัน T2 ซึ่งจะเป็นสัดส่วนกับความแตกต่างของอุณหภูมิ T1 และ T2 (รูปที่ 2 ).

รูปที่ 2.

เทอร์โมคัปเปิลมีหลายประเภท ขึ้นอยู่กับคู่ของวัสดุที่ใช้ (โลหะบริสุทธิ์หรือโลหะผสม) ในโครงการของเรา เราใช้เทอร์โมคัปเปิลชนิด K (โครเมล-อลูเมล) ซึ่งมักใช้ในเครื่องมือและเครื่องมือทางอุตสาหกรรม แรงดันเอาต์พุตของเทอร์โมคัปเปิลชนิด K อยู่ที่ประมาณ 40 µV/°C ดังนั้นจึงจำเป็นต้องใช้วงจรขยายสัญญาณที่มีการออฟเซ็ตแรงดันไฟฟ้าเล็กน้อยทั่วอินพุต

ตามที่กล่าวไว้ข้างต้น thermo-emf จะเป็นสัดส่วนกับความแตกต่างของอุณหภูมิระหว่างทางแยกเย็นและร้อน ซึ่งหมายความว่าจะต้องทราบอุณหภูมิของจุดเชื่อมต่อความเย็นเพื่อคำนวณอุณหภูมิของจุดเชื่อมต่อร้อนจริง ในการดำเนินการนี้ คุณจะต้องมีวงจรชดเชยจุดเชื่อมต่อความเย็น ซึ่งจะแนะนำการแก้ไขเทอร์โม-EMF ที่วัดได้โดยอัตโนมัติ (รูปที่ 3)

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

ลักษณะสำคัญของชิป MAX31855:

  • ช่วงการวัดอุณหภูมิ: ตั้งแต่ -270 °C ถึง +1800 °C;
  • ความละเอียด: 14 บิต ขั้นตอน 0.25 °C;
  • อินเทอร์เฟซที่เข้ากันได้กับ SPI อย่างง่าย (โหมดการอ่านข้อมูล);
  • วงจรชดเชยจุดเชื่อมต่ออ้างอิงเทอร์โมคัปเปิล
  • วงจรสำหรับตรวจจับการลัดวงจรของสายเทอร์โมคัปเปิลไปยังพาวเวอร์บัสและบัสทั่วไป
  • วงจรตรวจจับการแตกหักของวงจรการวัด
  • รุ่นสำหรับเทอร์โมคัปเปิลประเภท K, J, N, T และ E;
  • แพ็คเกจ 8 พิน

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

แผนผังของเครื่องวัดอุณหภูมิแสดงในรูปที่ 5

หัวใจของอุปกรณ์คือไมโครคอนโทรลเลอร์ AVR ชิป MAX31855 เชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านอินเทอร์เฟซ SPI

ใช้แบตเตอรี่ LR1 ที่มีแรงดันไฟฟ้า 1.5 V เป็นแหล่งพลังงาน ในการจ่ายไฟให้กับไมโครคอนโทรลเลอร์และชิปอินเทอร์เฟซเทอร์โมคัปเปิล จะใช้วงจรบูสต์ตัวแปลง DC/DC โดยใช้ชิปซีรีส์ XC9111 ซึ่งให้แรงดันเอาต์พุต 3.0 V ไมโครคอนโทรลเลอร์ควบคุมพลังงานและตรวจสอบแรงดันไฟฟ้าของแบตเตอรี่

เนื่องจากใช้แบตเตอรี่ 1.5 V เป็นแหล่งจ่ายไฟ จึงเป็นการดีที่สุดที่จะใช้ตัวบ่งชี้ LCD แบบคงที่ส่วน TWV1302W ซึ่งใช้ในอุปกรณ์วัดอุณหภูมิแบบดิจิตอลเพื่อแสดงข้อมูล (รูปที่ 6) แรงดันไฟฟ้าในการทำงานของตัวบ่งชี้นี้คือ 3 V เมื่อใช้ตัวบ่งชี้ที่มีแรงดันไฟฟ้า 5 V จะต้องใช้วงจรแปลงแรงดันไฟฟ้าเพิ่มเติม (รูปที่ 7) ฟังก์ชั่นการควบคุมตัวบ่งชี้จะดำเนินการโดยไมโครคอนโทรลเลอร์ เมื่อใช้โซลูชันนี้ กระแสไฟฟ้าที่อุปกรณ์ใช้จะเป็น 4 mA และแบตเตอรี่จะมีอายุการใช้งานอย่างน้อย 100 ชั่วโมง

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

เครื่องเคลือบบัตรมีพื้นที่ไม่เพียงพอ (กลไกตั้งอยู่อย่างแน่นหนาคุณทราบในประเทศจีน) ฉันใช้ตัวบ่งชี้เจ็ดส่วนขนาดเล็ก แต่นั่นไม่ใช่ทั้งหมดทั้งกระดานก็ไม่พอดีเช่นกันนี่คือจุดที่ความเก่งกาจ ของบอร์ดมีประโยชน์ฉันผ่าครึ่ง (ถ้าคุณใช้ตัวเชื่อมต่อส่วนบนจะเหมาะกับการพัฒนาหลายอย่างในเกร็ดเล็กเกร็ดน้อยจาก ur5kby)

ฉันตั้งค่ามันก่อนอื่นฉันทำตามที่ระบุไว้ในฟอรัมฉันไม่ได้บัดกรีในเทอร์โมคัปเปิ้ลฉันตั้งค่า 400 (แม้ว่าพารามิเตอร์นี้จะอยู่ในหน่วยความจำรายการนี้จะหายไป) ฉันตั้งค่าตัวแปรเป็นอุณหภูมิห้องโดยประมาณและ ถึงจุดเดือดพอดี

ตามทฤษฎีแล้วตัวควบคุมดังกล่าวทำงานได้สูงถึง 999°C แต่ที่บ้านไม่น่าจะพบอุณหภูมิดังกล่าวได้ ส่วนใหญ่เป็นไฟแบบเปิด แต่แหล่งความร้อนนี้มีความไม่เชิงเส้นสูงและความไวต่อสภาวะภายนอก

นี่คือตารางตัวอย่าง

และเพื่อความชัดเจนอีกด้วย

ดังนั้นจึงแทบไม่มีทางเลือกในการเลือกแหล่งสำหรับปรับการอ่านค่าของคอนโทรลเลอร์

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

ฉันทำหม้อแปลงโดยการบิดด้วยถ่านมันกลายเป็นลูกบอลและปลายทั้งสองข้างก็เหมือนกันตามลวดทองแดงเพื่อการบัดกรีที่ดีกับสายไฟของฉัน

แต่ประกอบเองได้ในราคาเพียงครึ่งเดียว
หากใครสนใจยินดีต้อนรับสู่แมวค่ะ

มาเริ่มกันตามลำดับ
เทอร์โมคัปเปิล...เหมือนเทอร์โมคัปเปิล มิเตอร์เป๊ะๆ ชนิด K 0-800C

มันสามารถฝังเข้าไปในตัวเครื่องได้มีส่วนเกลียวที่หมุนได้อย่างอิสระ เส้นผ่านศูนย์กลาง 5.8 มม. ระยะพิทช์ - 0.9~1.0 มม. ดูเหมือน M6 x 1.0 มม. กุญแจครบวงจรสำหรับ 10


ทั้งหมดนี้ดีแล้ว จะทำอย่างไรต่อไป? จำเป็นต้องแปลงสัญญาณ (เทอร์โมพาวเวอร์) ให้เป็นสัญญาณดิจิทัลหรืออนาล็อกเพื่อที่จะอ่านด้วย Arduino สิ่งนี้จะช่วยเราได้ นี่คือตัวแปลงสัญญาณเทอร์โมคัปเปิลชนิด K เป็นดิจิตอล มีอินเทอร์เฟซที่เหมาะกับเรา
มาแล้วฮีโร่ของเรา - ($4.20)


ราคา 4.10 ดอลลาร์ แต่ไม่มีล็อตนั้นอีกต่อไป (ผู้ขายรายเดียวกัน)

เราจะเชื่อมต่อกับ Arduino คุณสามารถทำแบบง่ายๆ ($5.25 คุณสามารถหามันถูกกว่าได้ ที่นี่คุณเห็นอันนี้พอดี)


เราจะเขียนข้อมูลลงในการ์ดหน่วยความจำ (และในเวลาเดียวกันก็ส่งไปที่พอร์ต) โดยใช้เงิน 1.25 ดอลลาร์


อินเทอร์เฟซก็เป็น SPI เช่นกัน แต่ไม่ใช่ทุกการ์ดที่รองรับ หากไม่เริ่ม ให้ลองอันอื่นก่อน
ตามทฤษฎีแล้ว อุปกรณ์ SPI ทุกบรรทัด (MOSI หรือ SI, MISO หรือ SO, SCLK หรือ SCK) ยกเว้น CS (CS หรือ SS - ตัวเลือกชิป) สามารถเชื่อมต่อกับพินเดียวของ Arduino ได้ แต่ MAX6675 จะไม่ ทำงานอย่างเพียงพอ นั่นเป็นเหตุผลที่ฉันแยกทุกอย่างออกเป็นหมุดต่างๆ
ภาพร่างมีพื้นฐานมาจากตัวอย่างการทำงานกับการ์ดหน่วยความจำที่มี
ไลบรารี่และภาพร่างสำหรับ MAX6675 แผนภาพการเชื่อมต่อ MAX6675:

#รวม
#รวม

หน่วย int = 1; // หน่วยเป็นอุณหภูมิการอ่านข้อมูล (0 = F, 1 = C)
ข้อผิดพลาดลอยตัว = 0.0; // ข้อผิดพลาดในการชดเชยอุณหภูมิ
ลอย temp_out = 0.0; // ตัวแปรเอาต์พุตอุณหภูมิ

MAX6675 temp0(9,8,7,หน่วย,ข้อผิดพลาด);

การตั้งค่าเป็นโมฆะ()
{
อนุกรมเริ่มต้น(9600);
Serial.print("กำลังเตรียมใช้งานการ์ด SD...");

พินโหมด(10, เอาต์พุต);
ถ้า (!SD.begin(10)) (
Serial.println("การเริ่มต้นล้มเหลว!");
กลับ;
}
Serial.println("การเริ่มต้นเสร็จสิ้น");

// ตรวจสอบว่ามีไฟล์ data.csv อยู่บนแผนที่หรือไม่ หากมี ให้ลบออก
ถ้า(SD.exists("temp.csv")) (
SD.remove("temp.csv");
}
//เปิดไฟล์. โปรดทราบว่าสามารถเปิดได้ครั้งละหนึ่งไฟล์เท่านั้น
//ดังนั้นคุณต้องปิดอันนี้เพื่อเปิดอันอื่น
myFile = SD.open("temp.csv", FILE_WRITE); //เปิดให้เขียนครับ


ถ้า (myFile) (
Serial.print("กำลังเขียนไปยัง temp.csv...");
// ปิดไฟล์:
myFile.close();
Serial.println("เสร็จสิ้น");
}
อื่น(


}

}
เป็นโมฆะวน()
{

Temp_out = temp0.read_temp(5); // อ่านอุณหภูมิ 5 ครั้งและส่งคืนค่าเฉลี่ยไปที่ var

เวลา = เวลา + 1; // เพิ่มเวลา 1

MyFile = SD.open("temp.csv", FILE_WRITE);

// หากไฟล์เปิดได้ตามปกติ ให้เขียนไปที่:
ถ้า (myFile) (
//บันทึกเวลา
myFile.print (เวลา);
Serial.พิมพ์(เวลา);
// เพิ่มเครื่องหมายอัฒภาค
myFile.print(";");
Serial.print(";");
// เขียนอุณหภูมิและการป้อนบรรทัด
myFile.println(temp_out);
Serial.println(temp_out);
// ปิดไฟล์:
myFile.close();
}
อื่น(
// และหากไม่เปิดขึ้น ให้พิมพ์ข้อความแสดงข้อผิดพลาด:
Serial.println("ข้อผิดพลาดในการเปิด temp.csv");
}
ล่าช้า (1,000); // รอสักครู่
}


ดาวน์โหลด: