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, Studeni
Anonim
Image
Image
Projektiranje PCB grijača
Projektiranje PCB grijača

Prije nekog vremena radio sam projekt pod nazivom Thermochromic Temperature & Humidity Display, gdje sam izgradio 7-segmentni zaslon od bakrenih ploča koje su grijale/hladile peltier elementi. Bakrene ploče bile su prekrivene termokromnom folijom koja mijenja boju s temperaturom. Ovaj je projekt manja verzija zaslona koji umjesto peletira koristi PCB s 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. Zagrijavanje je također učinkovitije što dovodi do brže promjene boje.

Pogledajte video kako biste vidjeli kako zaslon radi.

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

Pribor

  • Grijač PCB (za Gerberove datoteke pogledajte moj GitHub)
  • Upravljajte PCB -om (pogledajte moje GitHub za Gerber datoteke i BoM)
  • Senzor DHT22 (npr. Ebay.de)
  • 3D ispisani stalak (pogledajte moju 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: Projektiranje PCB -a grijača

Projektiranje PCB grijača
Projektiranje PCB grijača
Projektiranje PCB grijača
Projektiranje PCB grijača

PCB grijača dizajniran je u Eagleu. Dimenzije PCB -a su 100x150 mm jer je 150x150 mm standardna veličina termokromnih limova koje sam koristio. Isprva sam napravio skicu segmenata u Fusion360 koja je spremljena kao dxf, a zatim uvezena u Eagle. Segmenti imaju glodane praznine između sebe i povezani su samo malim mostovima. Time se poboljšava toplinska izolacija pojedinih segmenata te se stoga omogućuje brže zagrijavanje i smanjuje 'toplinsko preslušavanje'. Segmenti su ispunjeni tragovima od PCB -a na gornjem sloju (vidi se crvenom bojom) pomoću alata meandra u Eagleu. 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 s iglama preko donjeg sloja (vidi se plavo) koristeći mnogo deblje tragove od 32 mil. Svi segmenti imaju zajedničko stajalište.

Nisam radio nikakve izračune za snagu grijanja potrebnu za određeni porast temperature niti sam izračunao očekivani otpor segmenta. Pretpostavio sam da se bilo koje podešavanje snage grijanja može izvršiti pomoću PWM signala s različitim radnim ciklusom. Kasnije sam otkrio da se segmenti zagrijavaju razumno 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

Projektiranje PCB -a kontrolera
Projektiranje PCB -a kontrolera
Projektiranje PCB -a kontrolera
Projektiranje PCB -a kontrolera
Projektiranje PCB -a kontrolera
Projektiranje 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 osjetnika DHT22. Također ima izvorni USB i može se bljeskati s Adafruit -ovim CircuitPython pokretačkim programom. Za napajanje i programiranje MCU -a korišten je mikro USB priključak. Segmente grijača kontrolira 9 dvokanalnih MOSFET -ova (SP8K24FRATB). Oni mogu rukovati do 6 A i imati prag vrata <2,5 V tako da se mogu preklopiti logičkim signalom od 3,3 V iz MCU -a. Smatrao sam da je ova tema vrlo korisna za oblikovanje upravljačkog kruga grijača.

Naručio sam PCB -ove s PCBWay -a i 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 to je bilo prilično zamorno i razmišljam o upotrebi montažne usluge 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 micro-USB konektor. Također sam ispravio razmak između rupa za osjetnik DHT22 i dodao 10-pinski konektor za lakše bljeskanje pokretačkog programa putem J-Linka.

Korak 3: CircuitPython Bootloader

Isprva sam bljesnuo SAMD21 s UF2 bootloaderom temeljenim na Adafruit -ovom Trinket M0. Bootloader se morao malo izmijeniti jer Trinket ima LED diodu spojenu na jedan od pinova koje koristim za grijanje. Inače će ovaj pin kratko narasti nakon pokretanja i zagrijati povezani segment punom snagom. Bljeskalica bootloader-a vrši se spajanjem J-Linka na MCU putem SWD i SWC portova. Cijeli proces detaljno je opisan na web stranici Adafruit. Nakon instaliranja pokretačkog programa MCU se prepoznaje kao flash pogon kada je spojen preko 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đer dostupne na mom GitHubu.

Korak 4: CircuitPython kod

CircuitPython kod
CircuitPython kod
CircuitPython kod
CircuitPython kod

Nakon što je CircuitPython bootloader instaliran, možete samo programirati ploču spremanjem koda kao datoteku code.py izravno na USB flash pogon. Kôd koji sam napisao očitava osjetnik DHT22, a zatim naizmjence prikazuje temperaturu i vlažnost zagrijavanjem odgovarajućih segmenata. Kao što je već spomenuto, zagrijavanje se vrši prebacivanjem MOSFET -ova s PWM signalom. Umjesto da iglice konfiguriram kao PWM izlaze, u kodu sam pomoću kašnjenja generirao "lažni" PWM signal s niskom frekvencijom uključivanja od 100 Hz. Kako bih dodatno smanjio trenutnu potrošnju, ne uključujem segmente istovremeno, već uzastopno kako je prikazano na gornjoj shemi. Postoji i nekoliko trikova kako bi zagrijavanje segmenata bilo ravnomjernije. 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 se segmenti okruženi mnogim drugim segmentima moraju manje zagrijavati. Osim toga, ako se segment zagrijavao 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 senzorom DHT22. Kako bih pronašao razumne vremenske konstante, zapravo sam kalibrirao zaslon 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

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

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

  1. Lemljenje ženskih pin zaglavlja na PCB grijača
  2. Pričvrstite samoljepljivi termokromni lim na PCB grijača
  3. Lemiti DHT22 osjetnik na PCB upravljačkog sklopa i pričvrstiti M2 vijkom i maticom
  4. Lemljenje muških pin zaglavlja na PCB upravljačkog sklopa
  5. Spojite oba PCB -a i stavite u postolje s 3D printom

Korak 6: Dovršen projekt

Završen projekt
Završen projekt
Završen projekt
Završen projekt

Zadovoljan sam gotovim djelom koji se sada neprestano prikazuje u našoj dnevnoj sobi. Cilj izrade manje, jednostavnije verzije mog izvornog termokromnog zaslona 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 Eagleu te sam naučio o upotrebi MOSFET -a kao sklopki.

Dizajn bi se moglo dodatno poboljšati izradom lijepog kućišta za PCB -ove. Također razmišljam 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đer razmislite o glasovanju za mene u izazovu dizajna PCB -a.

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

Nagrada sudaca u PCB Design Challengeu

Preporučeni: