Kazalo:

Termokromni zaslon za temperaturo in vlažnost - PCB različica: 6 korakov (s slikami)
Termokromni zaslon za temperaturo in vlažnost - PCB različica: 6 korakov (s slikami)

Video: Termokromni zaslon za temperaturo in vlažnost - PCB različica: 6 korakov (s slikami)

Video: Termokromni zaslon za temperaturo in vlažnost - PCB različica: 6 korakov (s slikami)
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Julij
Anonim
Image
Image
Oblikovanje tiskanega vezja grelnika
Oblikovanje tiskanega vezja grelnika

Pred časom sem izvedel projekt, imenovan Thermochromic Temperature & Humidity Display, kjer sem zgradil 7-segmentni zaslon iz bakrenih plošč, ki so bile ogrevane/hlajene s pomočjo petilnih elementov. Bakrene plošče so bile prekrite s termokromno folijo, ki spreminja barvo s temperaturo. Ta projekt je manjša različica zaslona, ki namesto peletov uporablja tiskano vezje s sledovi ogrevanja, kot je predlagal uporabnik DmitriyU2 v oddelku za komentarje. Uporaba grelnika PCB omogoča veliko enostavnejšo in kompaktnejšo zasnovo. Ogrevanje je tudi učinkovitejše, kar vodi do hitrejše spremembe barve.

Oglejte si video, da vidite, kako zaslon deluje.

Ker mi je ostalo še nekaj PCB -jev, ta zaslon prodajam tudi v svoji trgovini Tindie.

Zaloge

  • Ogrevalni tiskalnik (za Gerberjeve datoteke glejte moj GitHub)
  • Nadzirajte tiskano vezje (glejte moj GitHub za datoteke Gerber in BoM)
  • Senzor DHT22 (npr. Ebay.de)
  • 3D natisnjeno stojalo (za datoteko stl glejte moj GitHub)
  • Termokromni lepilni list, 150x150 mm, 30-35 ° C (SFXC)
  • Vijak M2x6 + matica
  • 2x zatič za glavo 1x9, 2,54 mm (npr. Mouser.com)
  • 2x priključek SMD plošče 1x9, 2,54 mm (npr. Mouser.com)

1. korak: Oblikovanje tiskanega vezja grelnika

Oblikovanje tiskanega vezja grelnika
Oblikovanje tiskanega vezja grelnika
Oblikovanje tiskanega vezja grelnika
Oblikovanje tiskanega vezja grelnika

PCB grelec je bil zasnovan v podjetju Eagle. Dimenzije tiskanega vezja so 100x150 mm, ker je 150x150 mm standardna velikost termokromnih listov, ki sem jih uporabil. Najprej sem naredil skico segmentov v Fusion360, ki je bil shranjen kot dxf in nato uvožen v Eagle. Segmenti imajo med seboj rezkane vrzeli in so povezani le z majhnimi mostovi. To izboljša toplotno izolacijo posameznih segmentov in zato omogoča hitrejše segrevanje ter zmanjša „toplotne preslušavanja“. Segmenti so bili napolnjeni s sledovi PCB na zgornji plasti (videti rdeče) z orodjem za meander v Eaglu. Uporabil sem širino tira in razmik 6 mil, kar je najmanjša velikost, ki jo lahko PCBWay izdela brez dodatnih stroškov. Vsaka sled se vijuga med dvema vijakoma, ki sta nato povezani z zatiči preko spodnje plasti (vidno v modri barvi) z uporabo veliko debelejših sledi 32 milj. Vsi segmenti imajo skupno točko.

Nisem naredil nobenih izračunov za toplotno moč, potrebno za določeno zvišanje temperature, niti nisem izračunal pričakovane odpornosti segmenta. Ugotovil sem, da je mogoče kakršno koli prilagoditev ogrevalne moči narediti z uporabo signala PWM z različnim obratovalnim ciklom. Kasneje sem ugotovil, da se segmenti segrejejo razmeroma hitro, če jih napajamo prek 5V USB vrat z ~ 5% delovnim ciklom. Skupni tok pri ogrevanju vseh 17 segmentov je približno 1,6 A.

Vse datoteke plošč najdete na mojem GitHubu.

2. korak: Oblikovanje tiskanega vezja krmilnika

Oblikovanje tiskanega vezja krmilnika
Oblikovanje tiskanega vezja krmilnika
Oblikovanje tiskanega vezja krmilnika
Oblikovanje tiskanega vezja krmilnika
Oblikovanje tiskanega vezja krmilnika
Oblikovanje tiskanega vezja krmilnika

Za krmiljenje grelnika PCB sem izbral SAMD21E18 MCU, ki sem ga uporabil tudi v svojem projektu GlassCube. Ta mikrokrmilnik ima dovolj zatičev za krmiljenje vseh 17 segmentov grelcev in odčitavanje tipala DHT22. Ima tudi domači USB in ga je mogoče utripati z zagonskim nalagalnikom Adafruit's CircuitPython. Za napajanje in programiranje MCU je bil uporabljen priključek mikro USB. Segmente grelnika nadzira 9 dvokanalnih MOSFET -ov (SP8K24FRATB). Ti lahko prenesejo do 6 A in imajo prag vratne napetosti <2,5 V, tako da jih je mogoče preklopiti z logičnim signalom 3,3 V iz MCU. Ta nit se mi je zdel zelo v pomoč pri oblikovanju krmilnega kroga grelnika.

PCB -je sem naročil pri PCBWay -u, elektronske dele pa ločeno pri Mouserju in sam sam sestavil tiskana vezja, da prihranim stroške. Uporabil sem razpršilnik za spajkalno pasto, ki sem ročno postavil dele in jih spajkal z infrardečim grelnikom IC. Vendar pa je bilo to zaradi razmeroma velike količine sestavnih delov in zahtevane predelave precej dolgočasno, zato v prihodnje razmišljam o uporabi montažne storitve.

Tudi datoteke plošče lahko najdete na mojem GitHubu. Tam lahko najdete izboljšano različico tiskanega vezja, ki namesto mikro USB uporablja priključek USB-C. Popravil sem tudi razmik med luknjami za senzor DHT22 in dodal 10-pinski konektor za lažje utripanje zagonskega nalagalnika prek J-Linka.

3. korak: CircuitPython Bootloader

Najprej sem blestel SAMD21 z zagonskim nalagalnikom UF2, ki temelji na Adafruit's Trinket M0. Bootloader je bilo treba nekoliko spremeniti, ker ima Trinket LED, priključeno na enega od zatičev, ki jih uporabljam za ogrevanje. V nasprotnem primeru se bo ta zatič za kratek čas po zagonu visoko dvignil in segreval povezani segment s polno močjo. Utripanje zagonskega nalagalnika se izvede s povezavo J-Link na MCU prek vrat SWD in SWC. Celoten postopek je podrobno opisan na spletnem mestu Adafruit. Po namestitvi zagonskega nalagalnika se MCU prepozna kot bliskovni pogon, ko ga povežete prek vrat USB, nato pa lahko naslednje zagonske nalagalnike preprosto namestite tako, da datoteko UF2 povlečete na pogon.

Kot naslednji korak sem želel namestiti nalagalnik CircuitPython. Ker pa moja plošča uporablja veliko zatičev, ki niso povezani na Trinket M0, sem moral najprej nekoliko spremeniti konfiguracijo plošče. Na spletnem mestu Adafruit je spet odlična vadnica za to. V bistvu je treba v mpconfigboard.h komentirati nekaj prezrtih zatičev in nato vse znova sestaviti. Datoteke zagonskega nalagalnika po meri so na voljo tudi na mojem GitHubu.

Korak: Koda CircuitPython

Koda CircuitPython
Koda CircuitPython
Koda CircuitPython
Koda CircuitPython

Po namestitvi zagonskega nalagalnika CircuitPython lahko ploščo preprosto programirate tako, da kodo shranite kot datoteko code.py neposredno na pogon USB. Koda, ki sem jo napisal, odčita senzor DHT22 in nato izmenično prikaže temperaturo in vlažnost s segrevanjem ustreznih segmentov. Kot že omenjeno, se ogrevanje izvede s preklopom MOSFET -ov s signalom PWM. Namesto da bi zatiče konfigurirali kot izhode PWM, sem v kodi z zamudami ustvaril "ponarejen" signal PWM z nizko preklopno frekvenco 100 Hz. Za dodatno znižanje trenutne porabe segmentov ne vklapljam hkrati, ampak zaporedno, kot je prikazano na zgornji shemi. Obstaja tudi nekaj trikov za bolj enakomerno segrevanje segmentov. Najprej je delovni cikel za vsak segment nekoliko drugačen. Na primer, pomišljaj znaka "%" zaradi večje odpornosti potrebuje veliko večji delovni cikel. Ugotovil sem tudi, da je treba segmente, ki jih obdajajo številni drugi segmenti, manj segrevati. Poleg tega, če je bil segment ogrevan v prejšnjem "teku", se lahko delovni cikel zmanjša v naslednjem. Končno se čas ogrevanja in hlajenja prilagodi temperaturi okolice, ki jo priročno izmeri senzor DHT22. Da bi našel razumne časovne konstante, sem zaslon dejansko umeril v klimatski komori, do katere imam na srečo dostop pri delu.

Celotno kodo najdete na mojem GitHubu.

5. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Sestavljanje zaslona je precej preprosto in ga lahko razdelite na naslednje korake

  1. Spajate ženske pin -glave na PCB grelnika
  2. Pritrdite samolepilno termokromno folijo na tiskano vezje grelca
  3. Spajkajte senzor DHT22 na tiskano vezje krmilnika in ga pritrdite z vijakom in matico M2
  4. Spajate moške pinske glave na tiskano vezje krmilnika
  5. Povežite oba tiskana vezja in jih postavite v 3D tiskano stojalo

Korak 6: Končan projekt

Dokončan projekt
Dokončan projekt
Dokončan projekt
Dokončan projekt

Zelo sem zadovoljen z dokončano igro, ki se zdaj nenehno vrti v naši dnevni sobi. Cilj izdelave manjše in enostavnejše različice mojega prvotnega termokromnega zaslona je bil vsekakor dosežen in uporabniku DmitriyU2 bi se še enkrat zahvalil za predlog. Projekt mi je pomagal tudi pri izboljšanju veščin oblikovanja tiskanih vezij v Eaglu in spoznala sem uporabo MOSFET -ov kot stikal.

Zasnovo bi lahko še izboljšali, če bi naredili lepo ohišje za tiskane vezje. Razmišljam tudi o izdelavi digitalne ure v istem slogu.

Če vam je ta projekt všeč, ga lahko preprosto predelate ali kupite v moji trgovini Tindie. Razmislite tudi o glasovanju zame v izzivu oblikovanja PCB.

PCB Design Challenge
PCB Design Challenge
PCB Design Challenge
PCB Design Challenge

Sodniška nagrada na PCB Design Challenge

Priporočena: