İçindekiler:

Termokromik Sıcaklık ve Nem Göstergesi - PCB Versiyonu: 6 Adım (Resimlerle)
Termokromik Sıcaklık ve Nem Göstergesi - PCB Versiyonu: 6 Adım (Resimlerle)

Video: Termokromik Sıcaklık ve Nem Göstergesi - PCB Versiyonu: 6 Adım (Resimlerle)

Video: Termokromik Sıcaklık ve Nem Göstergesi - PCB Versiyonu: 6 Adım (Resimlerle)
Video: Kağıda Yazdığınızı Çakmakla Silebilir misiniz? Şaşırtıcı Deney! 😮🤯🔥📝 2024, Kasım
Anonim
Image
Image
Isıtıcı PCB'sini tasarlama
Isıtıcı PCB'sini tasarlama

Bir süre önce Termokromik Sıcaklık ve Nem Göstergesi adlı bir proje yaptım ve burada peltier elementler tarafından ısıtılan/soğutulan bakır plakalardan 7 segmentli bir ekran yaptım. Bakır plakalar, sıcaklıkla renk değiştiren termokromik bir folyo ile kaplanmıştır. Bu proje, yorumlar bölümünde DmitriyU2 kullanıcısı tarafından önerildiği gibi, peltier yerine ısıtma izli bir PCB kullanan ekranın daha küçük bir versiyonudur. Bir PCB ısıtıcı kullanmak, çok daha basit ve daha kompakt bir tasarım sağlar. Isıtma ayrıca daha verimlidir ve bu da daha hızlı renk değişimine yol açar.

Ekranın nasıl çalıştığını görmek için videoyu izleyin.

Birkaç PCB kaldığı için bu ekranı Tindie mağazamda da satıyorum.

Gereçler

  • Isıtıcı PCB (Gerber dosyaları için GitHub'a bakın)
  • Kontrol PCB'si (Gerber dosyaları ve BoM için GitHub'a bakın)
  • DHT22 sensörü (ör. ebay.de)
  • 3D baskılı stand (stl dosyası için GitHub'a bakın)
  • Termokromik Yapışkanlı Levha, 150x150 mm, 30-35°C (SFXC)
  • M2x6 cıvata + somun
  • 2x pin başlığı 1x9, 2,54 mm (ör. mouser.com)
  • 2x SMD kart konektörü 1x9, 2,54 mm (ör. mouser.com)

Adım 1: Isıtıcı PCB'sini tasarlama

Isıtıcı PCB'sini tasarlama
Isıtıcı PCB'sini tasarlama
Isıtıcı PCB'sini tasarlama
Isıtıcı PCB'sini tasarlama

Isıtıcı PCB, Eagle'da tasarlanmıştır. Kullandığım termokromik levhaların standart ölçüsü 150x150 mm olduğu için PCB boyutları 100x150 mm'dir. İlk önce Fusion360'ta dxf olarak kaydedilen ve ardından Eagle'a aktarılan segmentlerin bir taslağını yaptım. Segmentler, aralarında frezelenmiş boşluklara sahiptir ve yalnızca küçük köprülerle birbirine bağlanır. Bu, bireysel segmentlerin ısı yalıtımını iyileştirir ve bu nedenle daha hızlı ısıtmaya izin verir ve 'termal karışmayı' azaltır. Segmentler, Eagle'daki menderes aracı kullanılarak üst katmandaki (kırmızı ile gösterilen) PCB izleriyle dolduruldu. PCBWay tarafından ekstra maliyet olmadan üretilebilecek minimum boyut olan 6 mil'lik bir palet genişliği ve aralığı kullandım. Her iz, daha sonra çok daha kalın 32 mil izleri kullanılarak alt katman (mavi olarak görülen) aracılığıyla pimlere bağlanan iki yol arasında kıvrılır. Tüm segmentler ortak bir zemini paylaşıyor.

Belirli bir sıcaklık artışı için gerekli olan ısıtma gücü için herhangi bir hesaplama yapmadım ve bir segmentin beklenen direncini hesaplamadım. Değişken görev döngüsüne sahip bir PWM sinyali kullanılarak ısıtma gücünün herhangi bir ayarının yapılabileceğini düşündüm. Daha sonra, ~%5 görev döngüsü kullanılarak 5V USB bağlantı noktasından güç verildiğinde segmentlerin oldukça hızlı ısındığını buldum. 17 segmentin tümünü ısıtırken toplam akım yaklaşık 1,6 A'dır.

Tüm pano dosyaları GitHub'ımda bulunabilir.

Adım 2: Denetleyici PCB'sini Tasarlama

Denetleyici PCB'sini tasarlama
Denetleyici PCB'sini tasarlama
Denetleyici PCB'sini tasarlama
Denetleyici PCB'sini tasarlama
Denetleyici PCB'sini tasarlama
Denetleyici PCB'sini tasarlama

PCB ısıtıcısını kontrol etmek için GlassCube projemde de kullandığım bir SAMD21E18 MCU seçiyorum. Bu mikro denetleyici, 17 ısıtıcı segmentin tümünü kontrol etmek ve DHT22 sensörünü okumak için yeterli pime sahiptir. Ayrıca yerel USB'ye sahiptir ve Adafruit'in CircuitPython önyükleyicisi ile flash'lanabilir. Güç kaynağı olarak ve MCU'yu programlamak için bir mikro USB konektörü kullanıldı. Isıtıcı segmentleri, 9 adet çift kanallı MOSFET (SP8K24FRATB) tarafından kontrol edilir. Bunlar 6 A'ya kadar işleyebilir ve kapı eşik voltajı <2,5 V'a sahiptir, böylece MCU'dan gelen 3,3 V mantık sinyali ile anahtarlanabilirler. Isıtıcı kontrol devresini tasarlamama yardımcı olması için bu konuyu çok faydalı buldum.

PCB'leri PCBWay'den ve elektronik parçaları Mouser'dan ayrı olarak sipariş ettim ve maliyetten tasarruf etmek için PCB'leri kendim monte ettim. Parçaları elle yerleştirdiğim bir lehim pastası dağıtıcısı kullandım ve kızılötesi IC ısıtıcı ile lehimledim. Ancak, ilgili bileşenlerin nispeten büyük miktarı ve gerekli yeniden çalışma nedeniyle bu oldukça sıkıcıydı ve gelecekte bir montaj hizmeti kullanmayı düşünüyorum.

Yine tahta dosyaları GitHub'ımda bulunabilir. Burada, mikro USB yerine bir USB-C konektörü kullanan PCB'nin geliştirilmiş bir sürümünü bulabilirsiniz. Ayrıca DHT22 sensörü için geçiş deliklerinin aralığını düzelttim ve önyükleyicinin J-Link aracılığıyla daha kolay yanıp sönmesi için 10 pimli bir konektör ekledim.

Adım 3: CircuitPython Önyükleyici

İlk başta SAMD21'i Adafruit'in Trinket M0'ına dayalı bir UF2 önyükleyici ile flashladım. Bibloda ısıtma için kullandığım pinlerden birine bağlı bir LED olduğu için bootloader'ın biraz değiştirilmesi gerekiyordu. Aksi takdirde bu pin boot sonrası kısa bir süreliğine yükselecek ve bağlı segmenti tam güçle ısıtacaktır. Önyükleyicinin yanıp sönmesi, SWD ve SWC bağlantı noktaları aracılığıyla MCU'ya bir J-Link bağlanarak yapılır. Tüm süreç Adafruit web sitesinde ayrıntılı olarak açıklanmaktadır. Önyükleyiciyi kurduktan sonra, MCU, mikro USB bağlantı noktası aracılığıyla bağlandığında bir flash sürücü olarak tanınır ve sonraki önyükleyiciler, bir UF2 dosyasını sürücüye sürükleyerek kolayca kurulabilir.

Bir sonraki adım olarak bir CircuitPython önyükleyici kurmak istedim. Ancak, kartım Trinket M0'a bağlı olmayan birçok pin kullandığından, önce kart konfigürasyonunu biraz değiştirmek zorunda kaldım. Yine bunun için Adafruit web sitesinde harika bir eğitim var. Temel olarak, mpconfigboard.h dosyasındaki birkaç göz ardı edilen pini yorumlamak ve ardından her şeyi yeniden derlemek yeterlidir. Özel önyükleyici dosyaları GitHub'ımda da mevcuttur.

Adım 4: CircuitPython Kodu

DevrePython Kodu
DevrePython Kodu
DevrePython Kodu
DevrePython Kodu

CircuitPython önyükleyici yüklendikten sonra, kodunuzu doğrudan USB flash sürücüye code.py dosyası olarak kaydederek kartı programlayabilirsiniz. Yazdığım kod DHT22 sensörünü okuyor ve ardından karşılık gelen segmentleri ısıtarak dönüşümlü olarak sıcaklık ve nemi gösteriyor. Daha önce de belirtildiği gibi ısıtma, MOSFET'leri bir PWM sinyali ile değiştirerek yapılır. Pinleri PWM çıkışları olarak yapılandırmak yerine, gecikmeleri kullanarak kodda 100 Hz'lik düşük anahtarlama frekansına sahip "sahte" bir PWM sinyali oluşturdum. Akım tüketimini daha da azaltmak için segmentleri aynı anda değil, yukarıdaki şemada gösterildiği gibi sırayla açıyorum. Segmentlerin ısınmasını daha eşit hale getirmek için de birkaç püf noktası var. Her şeyden önce görev döngüsü her segment için biraz farklıdır. Örneğin, "%" işaretinin kısa çizgisi, daha yüksek direnci nedeniyle çok daha büyük bir görev döngüsüne ihtiyaç duyar. Ayrıca, diğer birçok segmentle çevrili segmentlerin daha az ısıtılması gerektiğini buldum. Ek olarak, bir segment önceki "çalışmada" ısıtıldıysa, görev döngüsü bir sonrakinde azaltılabilir. Son olarak, ısıtma ve soğutma süresi, DHT22 sensörü tarafından uygun şekilde ölçülen ortam sıcaklığına uyarlanır. Makul zaman sabitlerini bulmak için, işyerinde şansıma erişebildiğim bir iklim odasındaki ekranı gerçekten kalibre ettim.

Kodun tamamını GitHub'ımda bulabilirsiniz.

Adım 5: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Ekranın montajı oldukça kolaydır ve aşağıdaki adımlara bölünebilir.

  1. PCB'yi ısıtmak için dişi pin başlıklarını lehimleyin
  2. Isıtıcı PCB'ye kendinden yapışkanlı termokromik levha takın
  3. DHT22 sensörünü kontrol PCB'sine lehimleyin ve M2 cıvata ve somunla sabitleyin
  4. Erkek pin başlıklarını kontrolör PCB'sine lehimleyin
  5. Her iki PCB'yi de bağlayın ve 3D baskılı standa yerleştirin

Adım 6: Biten Proje

Biten Proje
Biten Proje
Biten Proje
Biten Proje

Şu anda oturma odamızda sürekli çalışan bitmiş ekrandan oldukça memnunum. Orijinal termokromik ekranımın daha küçük, daha basit bir versiyonunu yapma amacıma kesinlikle ulaştım ve öneri için kullanıcı DmitriyU2'ye bir kez daha teşekkür etmek istiyorum. Proje ayrıca Eagle'da PCB tasarım becerilerimi geliştirmeme yardımcı oldu ve MOSFET'lerin anahtar olarak kullanımını öğrendim.

PCB'ler için güzel bir muhafaza yaparak tasarımı daha da geliştirebiliriz. Ben de aynı tarzda bir dijital saat yapmayı düşünüyorum.

Bu projeyi beğendiyseniz, yeniden yapabilir veya Tindie mağazamdan satın alabilirsiniz. Ayrıca PCB tasarım yarışmasında bana oy vermeyi düşünün.

PCB Tasarım Yarışması
PCB Tasarım Yarışması
PCB Tasarım Yarışması
PCB Tasarım Yarışması

PCB Tasarım Yarışmasında Jüri Ödülü

Önerilen: