สารบัญ:

จอแสดงผลอุณหภูมิและความชื้นเทอร์โมโครมิก - เวอร์ชัน PCB: 6 ขั้นตอน (พร้อมรูปภาพ)
จอแสดงผลอุณหภูมิและความชื้นเทอร์โมโครมิก - เวอร์ชัน PCB: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: จอแสดงผลอุณหภูมิและความชื้นเทอร์โมโครมิก - เวอร์ชัน PCB: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: จอแสดงผลอุณหภูมิและความชื้นเทอร์โมโครมิก - เวอร์ชัน PCB: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ECON TV EP.2 - เขียนโปรแกรม Arduino แสดงผลบนจอ LCD 16x2 2024, กรกฎาคม
Anonim
Image
Image
การออกแบบ PCB ฮีตเตอร์
การออกแบบ PCB ฮีตเตอร์

เมื่อไม่นานมานี้ มีโครงการที่เรียกว่า Thermochromic Temperature & Humidity Display ซึ่งฉันสร้างจอแสดงผล 7 ส่วนจากแผ่นทองแดงที่ได้รับความร้อน/เย็นด้วยองค์ประกอบ peltier แผ่นทองแดงถูกปกคลุมด้วยฟอยล์เทอร์โมโครมิกที่เปลี่ยนสีตามอุณหภูมิ โปรเจ็กต์นี้เป็นเวอร์ชันที่เล็กกว่าของจอแสดงผลซึ่งแทนที่จะใช้เพลเทียร์ใช้ PCB ที่มีร่องรอยความร้อนตามที่ผู้ใช้ DmitriyU2 แนะนำในส่วนความคิดเห็น การใช้ฮีตเตอร์ PCB ช่วยให้มีการออกแบบที่เรียบง่ายและกะทัดรัดยิ่งขึ้น การทำความร้อนยังมีประสิทธิภาพมากกว่าซึ่งทำให้เปลี่ยนสีได้เร็วขึ้น

ดูวิดีโอเพื่อดูว่าจอแสดงผลทำงานอย่างไร

เนื่องจากฉันมี PCB เหลืออยู่สองสามตัว ฉันจึงขายจอแสดงผลนี้ในร้านค้า Tindie ของฉันด้วย

เสบียง

  • Heater PCB (ดูไฟล์ GitHub สำหรับ Gerber ของฉัน)
  • ควบคุม PCB (ดู GitHub ของฉันสำหรับไฟล์ Gerber และ BoM)
  • เซ็นเซอร์ DHT22 (เช่น ebay.de)
  • แท่นพิมพ์ 3 มิติ (ดู GitHub ของฉันสำหรับไฟล์ stl)
  • แผ่นกาวเทอร์โมโครมิก 150x150 มม. 30-35°C (SFXC)
  • โบลท์ M2x6 + น็อต
  • 2x หัวเข็ม 1x9, 2.54 มม. (เช่น mouser.com)
  • 2x ขั้วต่อบอร์ด SMD 1x9, 2.54 มม. (เช่น mouser.com)

ขั้นตอนที่ 1: การออกแบบฮีตเตอร์ PCB

การออกแบบ PCB ฮีตเตอร์
การออกแบบ PCB ฮีตเตอร์
การออกแบบ PCB ฮีตเตอร์
การออกแบบ PCB ฮีตเตอร์

PCB เครื่องทำความร้อนได้รับการออกแบบใน Eagle ขนาด PCB คือ 100x150 มม. เพราะ 150x150 มม. เป็นขนาดมาตรฐานของแผ่นเทอร์โมโครมิกที่ฉันใช้ ตอนแรกฉันสร้างภาพร่างของส่วนต่างๆ ใน Fusion360 ซึ่งบันทึกเป็น dxf แล้วนำเข้าสู่ Eagle ส่วนต่าง ๆ มีช่องว่างระหว่างพวกเขาและเชื่อมต่อกันด้วยสะพานขนาดเล็กเท่านั้น สิ่งนี้ช่วยปรับปรุงฉนวนกันความร้อนของแต่ละส่วนและทำให้ความร้อนเร็วขึ้นและลด 'thermal crosstalk' ส่วนต่างๆ เต็มไปด้วยร่องรอย PCB ที่ชั้นบนสุด (เห็นเป็นสีแดง) โดยใช้เครื่องมือคดเคี้ยวใน Eagle ฉันใช้ความกว้างของแทร็กและระยะห่าง 6 mil ซึ่งเป็นขนาดขั้นต่ำที่สามารถผลิตได้โดย PCBWay โดยไม่มีค่าใช้จ่ายเพิ่มเติม แต่ละเส้นจะคดเคี้ยวระหว่างจุดแวะสองจุด ซึ่งจากนั้นเชื่อมต่อกับหมุดผ่านชั้นล่าง (เห็นเป็นสีน้ำเงิน) โดยใช้เส้นหนา 32 ล้านเส้น ทุกภาคส่วนมีพื้นฐานร่วมกัน

ฉันไม่ได้ทำการคำนวณใดๆ สำหรับพลังงานความร้อนที่จำเป็นสำหรับอุณหภูมิที่เพิ่มขึ้น และไม่ได้คำนวณความต้านทานที่คาดหวังของกลุ่ม ฉันคิดว่าการปรับกำลังความร้อนสามารถทำได้โดยใช้สัญญาณ PWM ที่มีรอบการทำงานที่แตกต่างกัน ต่อมาฉันพบว่าเซ็กเมนต์ร้อนเร็วพอสมควรเมื่อขับเคลื่อนผ่านพอร์ต USB 5V โดยใช้รอบการทำงานประมาณ 5% กระแสรวมเมื่อให้ความร้อนทั้ง 17 ส่วนคือประมาณ 1.6 A

ไฟล์บอร์ดทั้งหมดสามารถพบได้ใน GitHub ของฉัน

ขั้นตอนที่ 2: การออกแบบ PCB คอนโทรลเลอร์

การออกแบบ PCB คอนโทรลเลอร์
การออกแบบ PCB คอนโทรลเลอร์
การออกแบบ PCB คอนโทรลเลอร์
การออกแบบ PCB คอนโทรลเลอร์
การออกแบบ PCB คอนโทรลเลอร์
การออกแบบ PCB คอนโทรลเลอร์

ในการควบคุมตัวทำความร้อน PCB ฉันเลือก SAMD21E18 MCU ซึ่งฉันใช้ในโครงการ GlassCube ของฉันด้วย ไมโครคอนโทรลเลอร์นี้มีพินเพียงพอที่จะควบคุมส่วนฮีตเตอร์ทั้ง 17 ส่วนและอ่านเซ็นเซอร์ DHT22 นอกจากนี้ยังมี USB ในตัวและสามารถแฟลชด้วยโปรแกรมโหลดบูต CircuitPython ของ Adafruit ขั้วต่อไมโคร USB ถูกใช้เป็นแหล่งจ่ายไฟและสำหรับการเขียนโปรแกรม MCU ส่วนเครื่องทำความร้อนถูกควบคุมโดย MOSFET สองช่องสัญญาณ 9 ช่อง (SP8K24FRATB) สิ่งเหล่านี้สามารถรองรับได้ถึง 6 A และมีแรงดันเกตเวย์ <2.5 V ดังนั้นจึงสามารถเปลี่ยนได้โดยสัญญาณลอจิก 3.3 V จาก MCU ฉันพบว่าหัวข้อนี้มีประโยชน์มากในการช่วยฉันออกแบบวงจรควบคุมฮีตเตอร์

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

ไฟล์บอร์ดสามารถพบได้บน GitHub ของฉันอีกครั้ง คุณจะพบ PCB รุ่นที่ปรับปรุงแล้วซึ่งใช้ตัวเชื่อมต่อ USB-C แทน micro USB ฉันยังแก้ไขระยะห่างของรูผ่านสำหรับเซ็นเซอร์ DHT22 และเพิ่มตัวเชื่อมต่อ 10 พินเพื่อให้ bootloader กะพริบได้ง่ายขึ้นผ่าน J-Link

ขั้นตอนที่ 3: CircuitPython Bootloader

ตอนแรกฉันแฟลช SAMD21 ด้วย bootloader UF2 ตาม Trinket M0 ของ Adafruit ต้องแก้ไข bootloader เล็กน้อยเนื่องจาก Trinket มี LED ที่เชื่อมต่อกับหมุดตัวใดตัวหนึ่งที่ฉันใช้เพื่อให้ความร้อน มิฉะนั้นพินนี้จะสูงขึ้นในช่วงเวลาสั้น ๆ หลังจากบู๊ตและทำให้ส่วนที่เชื่อมต่อร้อนขึ้นด้วยกำลังไฟเต็ม การกะพริบ bootloader ทำได้โดยเชื่อมต่อ J-Link กับ MCU ผ่านพอร์ต SWD และ SWC กระบวนการทั้งหมดมีรายละเอียดอยู่ในเว็บไซต์ Adafruit หลังจากติดตั้ง bootloader แล้ว MCU จะรับรู้ว่าเป็นแฟลชไดรฟ์เมื่อเชื่อมต่อผ่านพอร์ต micro USB และสามารถติดตั้ง bootloader ที่ตามมาได้ง่ายๆ โดยการลากไฟล์ UF2 ไปที่ไดรฟ์

ในขั้นตอนต่อไป ฉันต้องการติดตั้ง CircuitPython bootloader อย่างไรก็ตาม เนื่องจากบอร์ดของฉันใช้พินจำนวนมากที่ไม่ได้เชื่อมต่อกับ Trinket M0 ฉันจึงต้องปรับเปลี่ยนการกำหนดค่าบอร์ดเล็กน้อยก่อน อีกครั้งมีบทช่วยสอนที่ยอดเยี่ยมสำหรับสิ่งนี้บนเว็บไซต์ Adafruit โดยพื้นฐานแล้ว เราเพียงแค่ต้องใส่ความคิดเห็นเกี่ยวกับพินที่ถูกละเว้นสองสามตัวใน mpconfigboard.h แล้วคอมไพล์ใหม่ทั้งหมด ไฟล์ bootloader แบบกำหนดเองมีอยู่ใน GitHub ของฉันด้วย

ขั้นตอนที่ 4: รหัส CircuitPython

รหัส CircuitPython
รหัส CircuitPython
รหัส CircuitPython
รหัส CircuitPython

หลังจากติดตั้งโปรแกรมโหลดบูต CircuitPython แล้ว คุณสามารถตั้งโปรแกรมบอร์ดโดยบันทึกโค้ดของคุณเป็นไฟล์ code.py ลงใน USB แฟลชไดรฟ์โดยตรง รหัสที่ฉันเขียนจะอ่านเซ็นเซอร์ DHT22 จากนั้นจึงแสดงอุณหภูมิและความชื้นสลับกันโดยให้ความร้อนกับส่วนที่เกี่ยวข้อง ดังที่ได้กล่าวไปแล้วการทำความร้อนทำได้โดยการเปลี่ยน MOSFET ด้วยสัญญาณ PWM แทนที่จะกำหนดค่าพินเป็นเอาต์พุต PWM ฉันสร้างสัญญาณ PWM "ปลอม" ที่มีความถี่การสลับต่ำ 100 Hz ในโค้ดโดยใช้การหน่วงเวลา เพื่อลดการบริโภคในปัจจุบัน ฉันไม่ได้เปิดเซ็กเมนต์พร้อมกัน แต่ตามลำดับดังแสดงในแผนผังด้านบน นอกจากนี้ยังมีเทคนิคเล็กน้อยเพื่อให้ความร้อนของส่วนต่างๆ สม่ำเสมอยิ่งขึ้น ประการแรก รอบการทำงานจะแตกต่างกันเล็กน้อยในแต่ละส่วน ตัวอย่างเช่น เส้นประของเครื่องหมาย "%" ต้องการรอบการทำงานที่ใหญ่กว่ามาก เนื่องจากมีความต้านทานสูงกว่า นอกจากนี้ ฉันยังพบว่าส่วนที่ล้อมรอบด้วยส่วนอื่นๆ จำนวนมากจำเป็นต้องได้รับความร้อนน้อยลง นอกจากนี้ หากส่วนใดส่วนหนึ่งได้รับความร้อนใน "การรัน" ครั้งก่อน รอบการทำงานจะลดลงในครั้งต่อไป สุดท้าย เวลาในการทำความร้อนและความเย็นจะถูกปรับให้เข้ากับอุณหภูมิแวดล้อมซึ่งวัดโดยเซ็นเซอร์ DHT22 ได้อย่างสะดวก เพื่อหาค่าคงที่ของเวลาที่เหมาะสม ฉันได้ปรับเทียบจอแสดงผลในห้องปรับอากาศซึ่งโชคดีที่เข้าถึงได้ในที่ทำงาน

คุณสามารถค้นหารหัสเต็มได้ที่ GitHub ของฉัน

ขั้นตอนที่ 5: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

การประกอบจอแสดงผลค่อนข้างง่าย และสามารถแบ่งออกได้เป็นขั้นตอนดังนี้

  1. บัดกรีส่วนหัวของพินตัวเมียกับฮีตเตอร์ PCB
  2. ติดแผ่นเทอร์โมโครมิกแบบมีกาวในตัวกับฮีตเตอร์ PCB
  3. ประสานเซ็นเซอร์ DHT22 กับ PCB ควบคุมและยึดด้วยสลักเกลียว M2 และน็อต
  4. บัดกรีส่วนหัวของหมุดตัวผู้กับตัวควบคุม PCB
  5. เชื่อมต่อ PCB ทั้งสองและวางในแท่นพิมพ์ 3 มิติ

ขั้นตอนที่ 6: โครงการที่เสร็จสิ้น

โครงการที่แล้วเสร็จ
โครงการที่แล้วเสร็จ
โครงการที่แล้วเสร็จ
โครงการที่แล้วเสร็จ

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

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

ถ้าคุณชอบโปรเจ็กต์นี้ คุณสามารถรีเมคหรือซื้อในร้านค้า Tindie ของฉัน พิจารณาโหวตให้ฉันในการออกแบบ PCB ด้วย

ความท้าทายในการออกแบบ PCB
ความท้าทายในการออกแบบ PCB
ความท้าทายในการออกแบบ PCB
ความท้าทายในการออกแบบ PCB

ผู้ตัดสินรางวัลในความท้าทายการออกแบบ PCB

แนะนำ: