สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การออกแบบฮีตเตอร์ PCB
- ขั้นตอนที่ 2: การออกแบบ PCB คอนโทรลเลอร์
- ขั้นตอนที่ 3: CircuitPython Bootloader
- ขั้นตอนที่ 4: รหัส CircuitPython
- ขั้นตอนที่ 5: การประกอบ
- ขั้นตอนที่ 6: โครงการที่เสร็จสิ้น
วีดีโอ: จอแสดงผลอุณหภูมิและความชื้นเทอร์โมโครมิก - เวอร์ชัน PCB: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เมื่อไม่นานมานี้ มีโครงการที่เรียกว่า 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 เครื่องทำความร้อนได้รับการออกแบบใน 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 ฉันเลือก 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 แล้ว คุณสามารถตั้งโปรแกรมบอร์ดโดยบันทึกโค้ดของคุณเป็นไฟล์ code.py ลงใน USB แฟลชไดรฟ์โดยตรง รหัสที่ฉันเขียนจะอ่านเซ็นเซอร์ DHT22 จากนั้นจึงแสดงอุณหภูมิและความชื้นสลับกันโดยให้ความร้อนกับส่วนที่เกี่ยวข้อง ดังที่ได้กล่าวไปแล้วการทำความร้อนทำได้โดยการเปลี่ยน MOSFET ด้วยสัญญาณ PWM แทนที่จะกำหนดค่าพินเป็นเอาต์พุต PWM ฉันสร้างสัญญาณ PWM "ปลอม" ที่มีความถี่การสลับต่ำ 100 Hz ในโค้ดโดยใช้การหน่วงเวลา เพื่อลดการบริโภคในปัจจุบัน ฉันไม่ได้เปิดเซ็กเมนต์พร้อมกัน แต่ตามลำดับดังแสดงในแผนผังด้านบน นอกจากนี้ยังมีเทคนิคเล็กน้อยเพื่อให้ความร้อนของส่วนต่างๆ สม่ำเสมอยิ่งขึ้น ประการแรก รอบการทำงานจะแตกต่างกันเล็กน้อยในแต่ละส่วน ตัวอย่างเช่น เส้นประของเครื่องหมาย "%" ต้องการรอบการทำงานที่ใหญ่กว่ามาก เนื่องจากมีความต้านทานสูงกว่า นอกจากนี้ ฉันยังพบว่าส่วนที่ล้อมรอบด้วยส่วนอื่นๆ จำนวนมากจำเป็นต้องได้รับความร้อนน้อยลง นอกจากนี้ หากส่วนใดส่วนหนึ่งได้รับความร้อนใน "การรัน" ครั้งก่อน รอบการทำงานจะลดลงในครั้งต่อไป สุดท้าย เวลาในการทำความร้อนและความเย็นจะถูกปรับให้เข้ากับอุณหภูมิแวดล้อมซึ่งวัดโดยเซ็นเซอร์ DHT22 ได้อย่างสะดวก เพื่อหาค่าคงที่ของเวลาที่เหมาะสม ฉันได้ปรับเทียบจอแสดงผลในห้องปรับอากาศซึ่งโชคดีที่เข้าถึงได้ในที่ทำงาน
คุณสามารถค้นหารหัสเต็มได้ที่ GitHub ของฉัน
ขั้นตอนที่ 5: การประกอบ
การประกอบจอแสดงผลค่อนข้างง่าย และสามารถแบ่งออกได้เป็นขั้นตอนดังนี้
- บัดกรีส่วนหัวของพินตัวเมียกับฮีตเตอร์ PCB
- ติดแผ่นเทอร์โมโครมิกแบบมีกาวในตัวกับฮีตเตอร์ PCB
- ประสานเซ็นเซอร์ DHT22 กับ PCB ควบคุมและยึดด้วยสลักเกลียว M2 และน็อต
- บัดกรีส่วนหัวของหมุดตัวผู้กับตัวควบคุม PCB
- เชื่อมต่อ PCB ทั้งสองและวางในแท่นพิมพ์ 3 มิติ
ขั้นตอนที่ 6: โครงการที่เสร็จสิ้น
ฉันค่อนข้างพอใจกับไดเพลย์ที่เสร็จแล้วซึ่งตอนนี้ทำงานอย่างต่อเนื่องในห้องนั่งเล่นของเรา เป้าหมายในการสร้างหน้าจอเทอร์โมโครมิกดั้งเดิมของฉันให้มีขนาดเล็กลงและเรียบง่ายขึ้นนั้นประสบความสำเร็จอย่างแน่นอน และฉันขอขอบคุณผู้ใช้ DmitriyU2 อีกครั้งสำหรับคำแนะนำ โครงการนี้ยังช่วยให้ฉันพัฒนาทักษะการออกแบบ PCB ใน Eagle และฉันได้เรียนรู้เกี่ยวกับการใช้ MOSFET เป็นสวิตช์
เราอาจปรับปรุงการออกแบบเพิ่มเติมด้วยการสร้างกล่องหุ้มที่ดีสำหรับ PCB ฉันกำลังคิดที่จะทำนาฬิกาดิจิตอลในรูปแบบเดียวกันด้วย
ถ้าคุณชอบโปรเจ็กต์นี้ คุณสามารถรีเมคหรือซื้อในร้านค้า Tindie ของฉัน พิจารณาโหวตให้ฉันในการออกแบบ PCB ด้วย
ผู้ตัดสินรางวัลในความท้าทายการออกแบบ PCB
แนะนำ:
PCB Flashing Tree Decoration: 5 ขั้นตอน (พร้อมรูปภาพ)
PCB Flashing Tree Decoration: ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีสร้างโปรเจ็กต์อิเล็กทรอนิกส์อย่างมีประสิทธิภาพ ตัวอย่างเช่น ฉันจะสร้าง PCB ที่มีไฟกะพริบตั้งแต่ต้นจนจบ อุปกรณ์อิเล็กทรอนิกส์ทั้งหมดทำงานด้วยตัวเองโดยไม่ต้องมีการเข้ารหัส สิ่งที่คุณต้องทำคือเสียบปลั๊ก
Head Phone Amp พร้อม PCB แบบกำหนดเอง: 8 ขั้นตอน (พร้อมรูปภาพ)
Head Phone Amp with Custom PCB: ฉันกำลังสร้าง (และพยายามทำให้สมบูรณ์แบบ) แอมป์หูฟังมาระยะหนึ่งแล้ว พวกคุณบางคนคงเคยเห็น 'งานสร้าง ible ก่อนหน้านี้ของฉันแล้ว สำหรับผู้ที่ยังไม่มี ฉันได้เชื่อมโยงสิ่งเหล่านี้ด้านล่าง สำหรับงานสร้างที่เก่ากว่าของฉัน ฉันมักจะใช้บอร์ดต้นแบบเพื่อสร้าง t
PCB Coils ใน KiCad: 5 ขั้นตอน (พร้อมรูปภาพ)
PCB Coils ใน KiCad: เมื่อไม่กี่สัปดาห์ก่อน ฉันได้สร้างจอแสดงผล 7 ส่วนแบบเครื่องกลที่ใช้แม่เหล็กไฟฟ้าเพื่อดันส่วนต่างๆ โปรเจ็กต์นี้ได้รับการตอบรับเป็นอย่างดี แม้กระทั่งได้รับการตีพิมพ์ในนิตยสาร Hackspace! ฉันได้รับความคิดเห็นและข้อเสนอแนะมากมายที่ฉันต้องทำ
FLEXBALL - ลูกบอล PCB แบบยืดหยุ่นร้อยพิกเซลพร้อม WiFi: 6 ขั้นตอน (พร้อมรูปภาพ)
FLEXBALL - ลูกบอล PCB แบบยืดหยุ่นได้หลายร้อยพิกเซลพร้อม WiFi: สวัสดีผู้ผลิต มันคือผู้ผลิต moekoe!Flexball นั้นใช้ PCB ที่ยืดหยุ่นซึ่งติดตั้ง LED ที่สามารถระบุตำแหน่งได้ 100 WS2812 2020 มันถูกควบคุมโดย ESP8285-01f ซึ่งเป็นโมดูลที่ใช้ ESP ที่เล็กที่สุดโดย Espressif นอกจากนี้ยังมีตัวเร่งความเร็ว ADXL345
ลำโพงเมนบอร์ด PCB: 5 ขั้นตอน (พร้อมรูปภาพ)
PCB Motherboard Speaker: Uma caixa de som praticamente vinda do lixo eletrônico.Custo zero!Espero que gostem:DSe eu ganhar algum dos principais prêmios eu blur na Universidade e disponibilizar para e os อาจารย์ ผู้เชี่ยวชาญ: