Sadržaj:

Termokromni prikaz temperature i vlažnosti - PCB verzija: 6 koraka (sa slikama)
Termokromni prikaz temperature i vlažnosti - PCB verzija: 6 koraka (sa slikama)

Video: Termokromni prikaz temperature i vlažnosti - PCB verzija: 6 koraka (sa slikama)

Video: Termokromni prikaz temperature i vlažnosti - PCB verzija: 6 koraka (sa slikama)
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Juli
Anonim
Image
Image
Dizajniranje PCB grijača
Dizajniranje PCB grijača

Prije nekog vremena radio sam na projektu pod nazivom Thermochromic Temperature & Humidity Display, gdje sam izgradio 7-segmentni ekran od bakrenih ploča koje su grijale/hladile peltier elementi. Bakrene ploče bile su prekrivene termokromnom folijom koja mijenja boju s temperaturom. Ovaj projekt je manja verzija ekrana koji umjesto peleta koristi PCB sa tragovima grijanja kako je predložio korisnik DmitriyU2 u odjeljku komentara. Korištenje grijača na PCB -u omogućuje mnogo jednostavniji i kompaktniji dizajn. Grijanje je također efikasnije što dovodi do brže promjene boje.

Pogledajte video kako biste vidjeli kako zaslon radi.

Budući da mi je ostalo još nekoliko PCB -a, ovaj ekran prodajem i u svojoj trgovini Tindie.

Supplies

  • PCB grijača (za Gerberove datoteke pogledajte moj GitHub)
  • Upravljajte PCB -om (pogledajte moj GitHub za Gerber datoteke i BoM)
  • DHT22 senzor (npr. Ebay.de)
  • Štampano 3D postolje (pogledajte moj GitHub za stl datoteku)
  • Termokromni ljepljivi lim, 150x150 mm, 30-35 ° C (SFXC)
  • M2x6 vijak + matica
  • 2x pin header 1x9, 2,54 mm (npr. Mouser.com)
  • 2x konektor SMD ploče 1x9, 2,54 mm (npr. Mouser.com)

Korak 1: Dizajniranje PCB grijača

Dizajniranje PCB grijača
Dizajniranje PCB grijača
Dizajniranje PCB grijača
Dizajniranje PCB grijača

PCB grijača dizajniran je u Eagle -u. Dimenzije PCB -a su 100x150 mm jer je 150x150 mm standardna veličina termokromnih limova koje sam koristio. Prvo sam napravio skicu segmenata u Fusion360 koji je sačuvan kao dxf, a zatim uvezen u Eagle. Segmenti imaju glodane praznine između njih i povezani su samo malim mostovima. Ovo poboljšava toplinsku izolaciju pojedinih segmenata i stoga omogućuje brže zagrijavanje i smanjuje „toplinsko preslušavanje“. Segmenti su ispunjeni tragovima od PCB -a na gornjem sloju (viđeno crvenom bojom) pomoću alata meandra u Eagle -u. Koristio sam širinu kolosijeka i razmak od 6 mil, što je minimalna veličina koju PCBWay može proizvesti bez dodatnih troškova. Svaki trag se vijuga između dvije vija, koje su zatim povezane sa iglama preko donjeg sloja (vidi se plavo) koristeći mnogo deblje tragove od 32 mil. Svi segmenti imaju zajedničko stajalište.

Nisam radio proračune za snagu grijanja potrebnu za određeni porast temperature, niti sam računao očekivani otpor segmenta. Pretpostavio sam da se bilo koje podešavanje snage grijanja može izvršiti korištenjem PWM signala s različitim radnim ciklusom. Kasnije sam otkrio da se segmenti zagrijavaju relativno brzo kada se napajaju kroz 5V USB priključak koristeći radni ciklus ~ 5%. Ukupna struja pri zagrijavanju svih 17 segmenata iznosi oko 1,6 A.

Sve datoteke ploče mogu se pronaći na mom GitHubu.

Korak 2: Dizajniranje PCB -a kontrolera

Projektovanje PCB -a kontrolera
Projektovanje PCB -a kontrolera
Projektovanje PCB -a kontrolera
Projektovanje PCB -a kontrolera
Projektovanje PCB -a kontrolera
Projektovanje PCB -a kontrolera

Za upravljanje grijačem na PCB -u biram SAMD21E18 MCU koji sam također koristio u svom GlassCube projektu. Ovaj mikrokontroler ima dovoljno pinova za upravljanje svih 17 segmenata grijača i očitavanje DHT22 senzora. Također ima izvorni USB i može se bljeskati sa Adafruit -ovim CircuitPython pokretačkim programom. Za napajanje i programiranje MCU -a korišten je mikro USB konektor. Segmente grijača kontrolira 9 dvokanalnih MOSFET -ova (SP8K24FRATB). Oni mogu rukovati do 6 A i imati prag kapije <2,5 V tako da se mogu prebaciti pomoću logičkog signala od 3,3 V iz MCU -a. Smatrao sam da je ova tema vrlo korisna za pomoć pri projektiranju upravljačkog kruga grijača.

Naručio sam PCB -ove sa PCBWay -a, a elektroničke dijelove odvojeno od Mousera i sam sastavio PCB -ove kako bih uštedio troškove. Koristio sam raspršivač paste za lemljenje, ručno sam stavio dijelove i lemio ih infracrvenim IC grijačem. Međutim, zbog relativno velike količine uključenih komponenti i potrebne prerade, ovo je bilo prilično dosadno i razmišljam o korištenju servisa za montažu u budućnosti.

Opet se datoteke ploče mogu pronaći na mom GitHubu. Tamo možete pronaći poboljšanu verziju PCB-a koja koristi USB-C konektor umjesto mikro USB-a. Također sam ispravio razmak između rupa za senzor DHT22 i dodao 10-pinski konektor za lakše bljeskanje pokretačkog programa putem J-Linka.

Korak 3: CircuitPython Bootloader

U početku sam isprobao SAMD21 sa UF2 pokretačkim programom zasnovanim na Adafruit -ovom Trinket M0. Bootloader je morao biti malo izmijenjen jer Trinket ima LED diodu povezanu na jedan od pinova koje koristim za grijanje. U suprotnom, ovaj pin će se kratko podići nakon pokretanja i zagrijati povezani segment punom snagom. Bljeskalica pokretačkog programa učitava se povezivanjem J-Linka na MCU preko SWD i SWC portova. Cijeli proces je detaljno opisan na web stranici Adafruit. Nakon instaliranja pokretačkog programa, MCU se prepoznaje kao flash pogon kada se poveže putem mikro USB priključka, a sljedeći pokretački programi mogu se jednostavno instalirati povlačenjem UF2 datoteke na pogon.

Kao sljedeći korak htio sam instalirati CircuitPython bootloader. Međutim, budući da moja ploča koristi mnoge pinove koji nisu povezani na Trinket M0, prvo sam morao malo izmijeniti konfiguraciju ploče. Opet postoji odličan vodič za to na web stranici Adafruit. U osnovi, potrebno je samo komentirati nekoliko zanemarenih pinova u mpconfigboard.h, a zatim sve ponovno kompajlirati. Prilagođene datoteke za pokretanje su takođe dostupne na mom GitHub -u.

Korak 4: CircuitPython kod

CircuitPython kod
CircuitPython kod
CircuitPython kod
CircuitPython kod

Nakon što je CircuitPython bootloader instaliran, možete jednostavno programirati ploču spremanjem koda kao code.py datoteku izravno na USB fleš disk. Kod koji sam napisao očitava senzor DHT22, a zatim naizmjenično prikazuje temperaturu i vlažnost zagrijavanjem odgovarajućih segmenata. Kao što je već spomenuto, zagrijavanje se vrši prebacivanjem MOSFET -ova sa PWM signalom. Umjesto da konfiguriram pinove kao PWM izlaze, u kodu sam pomoću kašnjenja generirao "lažni" PWM signal s niskom frekvencijom prebacivanja od 100 Hz. Da bih dodatno smanjio trenutnu potrošnju, ne uključujem segmente istovremeno, već uzastopno kako je prikazano na gornjoj shemi. Postoji i nekoliko trikova kako biste zagrijali segmente ujednačenije. Prije svega, radni ciklus je malo drugačiji za svaki segment. Na primjer, crtica znaka "%" treba mnogo veći radni ciklus zbog svog većeg otpora. Također sam otkrio da segmente koji su okruženi mnogim drugim segmentima treba manje zagrijavati. Osim toga, ako je segment zagrijan u prethodnom "pokretanju", radni ciklus se može smanjiti u sljedećem. Konačno, vrijeme zagrijavanja i hlađenja prilagođeno je temperaturi okoline koja se prikladno mjeri pomoću senzora DHT22. Da bih pronašao razumne vremenske konstante, kalibrirao sam ekran u klimatizacijskoj komori kojoj na sreću imam pristup na poslu.

Cijeli kôd možete pronaći na mom GitHubu.

Korak 5: Montaža

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

Sastavljanje zaslona je prilično jednostavno i može se podijeliti u sljedeće korake

  1. Lemiti ženski pin zaglavlje na PCB grijača
  2. Pričvrstite samoljepljivi termokromni lim na PCB grijača
  3. Lemiti senzor DHT22 na PCB kontrolera i pričvrstiti M2 vijkom i maticom
  4. Lemljenje muških iglica na PCB upravljačkog sklopa
  5. Spojite oba PCB -a i stavite u postolje sa 3D štampom

Korak 6: Završen projekat

Završen projekat
Završen projekat
Završen projekat
Završen projekat

Zadovoljan sam završenim diplay -om koji se sada stalno prikazuje u našoj dnevnoj sobi. Cilj izrade manje, jednostavnije verzije mog originalnog termokromnog ekrana definitivno je postignut i želio bih se još jednom zahvaliti korisniku DmitriyU2 na prijedlogu. Projekt mi je također pomogao da poboljšam vještine dizajna PCB -a u Eagle -u i naučio sam o korištenju MOSFET -a kao prekidača.

Moglo bi se dodatno poboljšati dizajn tako što bi se napravilo lijepo kućište za PCB -ove. Razmišljam i o izradi digitalnog sata u istom stilu.

Ako vam se sviđa ovaj projekt, možete ga samo preraditi ili kupiti u mojoj trgovini Tindie. Takođe razmislite o tome da glasate za mene u izazovu dizajna PCB -a.

Izazov dizajna PCB -a
Izazov dizajna PCB -a
Izazov dizajna PCB -a
Izazov dizajna PCB -a

Sudijska nagrada u PCB Design Challenge -u

Preporučuje se: