เซ็นเซอร์อุณหภูมิ I2C LM75

เซ็นเซอร์อุณหภูมิ I2C LM75

เซ็นเซอร์อุณหภูมิ I2C LM75

LM75 I2C เซนเซอร์วัดอุณหภูมิ เครื่องวัดอุณหภูมิ I2C บัส

สารบัญ

    หลักการทำงาน

    El IC LM75 เป็น เซ็นเซอร์อุณหภูมิ bandgap ซิลิคอนเซมิคอนดักเตอร์.

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

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

    ในกรณีของเซมิคอนดักเตอร์เนื่องจากการมีอยู่นี้ วงดนตรีต้องห้าม จำนวนพาหะจะขึ้นอยู่กับอุณหภูมิ (ขึ้นอยู่กับ การกระจายตัวของแฟร์มี-ดิแรก) ทำให้ค่าการนำไฟฟ้าเพิ่มขึ้นตามอุณหภูมิ ในเซมิคอนดักเตอร์ อุณหภูมิที่เพิ่มขึ้นจะทำให้ความต้านทานเพิ่มขึ้น แต่ยังทำให้ค่าการนำไฟฟ้าเพิ่มขึ้น (เพิ่มเติม) อีกด้วย

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

    ส่วนประกอบฮาร์ดแวร์ LM75

    LM75 ยังมี ตัวแปลงอนาล็อก-ดิจิตอลโดยการมอดูเลตซิกมา-เดลต้า ซึ่งมีหน้าที่รับค่าตัวเลข (ดิจิทัล) ของอุณหภูมิ ซึ่งเป็นค่าที่เก็บไว้ในภายหลัง (ทุกๆ 100 มิลลิวินาที) ในรีจิสเตอร์ตัวใดตัวหนึ่งซึ่งสามารถอ่านค่าผ่านบัสได้ I2C.

    เซ็นเซอร์อุณหภูมิ LM75 I2C แผนภาพแบบง่ายของบล็อกการทำงาน

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

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

    ข้อมูลจำเพาะทางเทคนิคและการใช้งาน LM75

    ช่วงอุณหภูมิที่ LM75 สามารถวัดได้จะแตกต่างกันไปตั้งแต่ −55 °C ถึง +125 °C และความละเอียดเชิงตัวเลขคือ 0.125 °C แม้ว่าความแม่นยำจะอยู่ที่ ±2 °C ในกรณีที่ดีที่สุด เมื่ออุณหภูมิอยู่ระหว่าง - 25 °C และ +100 °C และความแม่นยำ ±3 °C โดยมีอุณหภูมิสุดขั้วที่สุด ระหว่าง −55 °C ถึง +125 °C

    LM75. เซ็นเซอร์อุณหภูมิ I2C พินเอาท์

    การใช้งาน (ฮาร์ดแวร์) ของ LM75 ในวงจรนั้นง่ายมาก โดยไม่ต้องการส่วนประกอบมากกว่าตัวต้านทาน ดึงขึ้น เดล รถบัส I2C และสามารถจ่ายไฟได้ด้วยแรงดันไฟฟ้าระหว่าง 2,8 V ถึง 5,5 V ในตัวเดียวกัน รถบัส I2C สามารถจัดเรียงเทอร์โมมิเตอร์ LM75 ได้สูงสุดแปดเครื่องโดยการกำหนดค่าที่อยู่ด้วยพินสามพิน A0, A1 และ A2 ที่ระดับสูงหรือต่ำ ตามปกติในกรณีเหล่านี้

    LM75. เซ็นเซอร์อุณหภูมิ I2C วงจรการใช้งาน

    ในทางกลับกัน การใช้ LM75 เป็นโพรบไม่สะดวกเนื่องจากบรรจุภัณฑ์ที่นำเสนอ สสอ (TSSOP 8) หรือ วินาที (SO8) และโดยปกติจะใช้เพื่อวัดอุณหภูมิโดยรอบหรือวัดอุณหภูมิของส่วนประกอบที่จัดอยู่ในสภาพแวดล้อมของ PCB ซึ่งมีเทอร์โมมิเตอร์ LM75 ตั้งอยู่

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

    การใช้ประโยชน์จาก LM75 จากไมโครคอนโทรลเลอร์ผ่านบัส I2C

    ขอบคุณการใช้ รถบัส I2C การทำงานของ LM75 นั้นง่ายมาก เพียงเข้าถึงที่อยู่ที่อยู่บนบัสเพื่อจัดเก็บหรืออ่านการกำหนดค่า และรับค่าอุณหภูมิที่วัดได้

    ที่อยู่ I2C ฐานของ LM75 คือ 0B01001XXX และเสริมตามที่อธิบายไว้ข้างต้น โดยบิตที่อยู่สามบิตสุดท้ายที่ตั้งค่าโดยฮาร์ดแวร์ที่มีพิน A0, A1 และ A2 สูง (ค่าหนึ่ง) หรือต่ำ (ค่าศูนย์)

    LM75 เป็นเทอร์โมมิเตอร์

    รีจิสเตอร์ที่เก็บอุณหภูมิที่วัดล่าสุด (TEMP) อยู่ที่ที่อยู่ 0x00 รีจิสเตอร์การกำหนดค่า (CONF) อยู่ที่ที่อยู่ 0x01 รีจิสเตอร์ที่เก็บอุณหภูมิของ ฮิสเทรีซิส ที่ที่อยู่ 0x02 และค่าสูงสุดหรืออุณหภูมิเกิน (TOS) มีที่อยู่ 0x03 ยกเว้นอุณหภูมิปัจจุบัน (TEMP) ทั้งหมดจะทำหน้าที่อ่านและเขียน

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

    กระบวนการนี้เป็นเรื่องปกติเมื่อทำงานกับอุปกรณ์ I2C:

    1. เพิ่มห้องสมุด I2C ไปที่รหัสด้วย #include <Wire.h>
    2. เริ่มต้นไลบรารี I2C การใช้ Wire.begin();
    3. เข้าถึงเซ็นเซอร์อุณหภูมิ LM75 โดยใช้ Wire.beginTransmission(DIRECCION_LM75)
    4. ส่งที่อยู่ของรีจิสทรีที่เข้าถึงโดยใช้ Wire.write(REGISTRO)
    5. ปล่อย รถบัส I2C กับ Wire.endTransmission()
    6. เข้าถึง LM75 อีกครั้ง
    7. ขอค่ารีจิสทรีด้วย Wire.requestFrom(DIRECCION,CANTIDAD)
    8. ตรวจสอบว่าได้รับข้อมูลโดยใช้ Wire.available()
    9. อ่านค่าที่ร้องขอ Wire.read() (จำนวนไบต์ประกอบกันกี่ครั้ง)
    10. แม้ว่าจะไม่จำเป็น แต่เมื่อเสร็จแล้วให้ปล่อย รถบัส I2C

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

    รับค่าที่จัดเก็บไว้ในบันทึกอุณหภูมิ LM75

    ในบรรทัดที่ 22 ของโค้ดในตัวอย่างก่อนหน้านี้ คุณสามารถดูวิธีการโหลดข้อมูลที่จัดเก็บโดยรีจิสเตอร์อุณหภูมิทั้งสามของ LM75 ใช้ 16 ไบต์ (11 บิต) ซึ่งมีเพียง XNUMX บิตที่สำคัญที่สุดเท่านั้นที่ถูกต้อง เพื่ออ่านอุณหภูมิเป็นจำนวนเต็ม (โดยมีเครื่องหมายเข้ารหัสอยู่) ส่วนเสริมของสอง) ไบต์ที่สำคัญที่สุดจะถูกโหลดลงในตัวแปรก่อน int de แพลตฟอร์มฮาร์ดแวร์ และมันถูกหมุนไปทางซ้าย 8 บิต เหลือไว้ในส่วนที่สำคัญที่สุดของ int. ไบต์ที่สองจะถูกอ่านและเพิ่มลงในตัวแปร int ด้วยการดำเนินการ OR

    การตีความค่าอุณหภูมิที่โหลดของ LM75

    ในบรรทัดที่ 24 คุณสามารถดูวิธีตีความค่าอุณหภูมิได้ ก่อนอื่นจำเป็นต้องหารด้วย 32 เป็นจำนวนเต็ม (หมุน 11 บิตที่เกี่ยวข้องโดยไม่สูญเสียเครื่องหมาย) และหารด้วย 8 ซึ่งเป็นจำนวน "ขั้นตอน" ที่ใช้แสดงอุณหภูมิ (อ็อกเทฟขององศา) เพื่อให้ได้ค่าชนิด float โดยมีทศนิยมตรงกัน เนื่องจากคอมไพเลอร์ (รวมถึง toolchain de แพลตฟอร์มฮาร์ดแวร์) ปรับการหารจำนวนเต็มให้เหมาะสมด้วย 32 ไม่จำเป็นต้องรักษาเครื่องหมายและหมุนบิต "ด้วยตนเอง" เนื่องจากการดำเนินการไม่เร็วขึ้น (ประเมินได้)

    ตรวจสอบการรับข้อมูลจากบัส I2C

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

    กำหนดค่าการทำงานของ LM75

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

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

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

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

    ลักษณะที่สองคือสัญญาณเตือนจะทำงานที่ระดับต่ำ นั่นคือ ขา OS จะอยู่ในระดับสูงจนกระทั่งถึงอุณหภูมิการเตือนสูงสุด เนื่องจากขั้วของสัญญาณเตือน (ระดับที่เปิดใช้งาน) สามารถกำหนดค่าได้ ในการติดตั้งง่ายๆ บางอย่าง การใช้สัญญาณ (ฮาร์ดแวร์) ก็จะเพียงพอที่จะใช้ประโยชน์จาก LM75 เช่น การเชื่อมต่อหรือตัดการเชื่อมต่อพัดลมเมื่อระบบ ถึงอุณหภูมิที่กำหนด

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

    ในการลงทะเบียนการกำหนดค่า ยังมีอีกเล็กน้อยในการปิดใช้งาน ("ปิด") LM75 และเข้าสู่โหมดการบริโภคต่ำ ซึ่งออกได้โดยการเปลี่ยนบิตนี้อีกครั้งหรือเพียงเมื่ออ่านการลงทะเบียนครั้งถัดไป

    แสดงความคิดเห็น

    คุณอาจจะพลาด