Cuprins:

Afișaj de temperatură și umiditate termocromă - Versiune PCB: 6 pași (cu imagini)
Afișaj de temperatură și umiditate termocromă - Versiune PCB: 6 pași (cu imagini)
Anonim
Image
Image
Proiectarea circuitului de încălzire
Proiectarea circuitului de încălzire

Cu ceva timp în urmă, am făcut un proiect numit Thermochromic Temperature & Umidity Display, unde am construit un afișaj cu 7 segmente din plăci de cupru care au fost încălzite / răcite de elemente mai groase. Plăcile de cupru au fost acoperite cu o folie termocromică care schimbă culoarea cu temperatura. Acest proiect este o versiune mai mică a afișajului, care, în loc de piele, folosește un PCB cu urme de încălzire, așa cum a sugerat utilizatorul DmitriyU2 în secțiunea de comentarii. Utilizarea unui încălzitor PCB permite un design mult mai simplu și mai compact. Încălzirea este, de asemenea, mai eficientă, ceea ce duce la o schimbare mai rapidă a culorii.

Urmăriți videoclipul pentru a vedea cum funcționează ecranul.

Din moment ce mai aveam câteva PCB-uri, vând și acest display pe magazinul meu Tindie.

Provizii

  • PCB de încălzire (vezi GitHub pentru fișiere Gerber)
  • Control PCB (vezi GitHub pentru fișiere Gerber și BoM)
  • Senzor DHT22 (de ex. Ebay.de)
  • Suport tipărit 3D (vezi GitHub pentru fișierul stl)
  • Foaie adezivă termocromică, 150x150 mm, 30-35 ° C (SFXC)
  • Șurub M2x6 + piuliță
  • 2x antet pin 1x9, 2,54 mm (de exemplu, mouser.com)
  • 2x conector placă SMD 1x9, 2,54 mm (de exemplu, mouser.com)

Pasul 1: Proiectarea PCB-ului încălzitorului

Proiectarea PCB-ului încălzitorului
Proiectarea PCB-ului încălzitorului
Proiectarea PCB-ului încălzitorului
Proiectarea PCB-ului încălzitorului

PCB-ul încălzitorului a fost proiectat în Eagle. Dimensiunile PCB sunt de 100x150 mm deoarece 150x150 mm este dimensiunea standard a foilor termocromice pe care le-am folosit. La început am făcut o schiță a segmentelor din Fusion360 care a fost salvată ca dxf și apoi importată în Eagle. Segmentele au decalaje între ele și sunt conectate numai prin poduri mici. Acest lucru îmbunătățește izolația termică a segmentelor individuale și, prin urmare, permite încălzirea mai rapidă și reduce „diafragma termică”. Segmentele au fost umplute cu urme de PCB pe stratul superior (văzut în roșu) folosind instrumentul meandru din Eagle. Am folosit o lățime și o distanță de șină de 6 mil, care este dimensiunea minimă care poate fi fabricată de PCBWay fără costuri suplimentare. Fiecare urmă este șerpuită între două vii care sunt apoi conectate la știfturi prin stratul inferior (văzut în albastru) folosind urme mult mai groase de 32 mil. Toate segmentele împărtășesc un punct comun.

Nu am făcut niciun calcul pentru puterea de încălzire necesară pentru o anumită creștere a temperaturii și nici nu am calculat rezistența așteptată a unui segment. M-am gândit că orice ajustare a puterii de încălzire poate fi făcută utilizând un semnal PWM cu ciclu de funcționare diferit. Ulterior am constatat că segmentele se încălzesc destul de repede atunci când sunt alimentate prin portul USB de 5V folosind un ciclu de funcționare de ~ 5%. Curentul total la încălzirea tuturor celor 17 segmente este de aproximativ 1,6 A.

Toate fișierele de bord pot fi găsite pe GitHub.

Pasul 2: Proiectarea plăcii de control

Proiectarea PCB-ului controlerului
Proiectarea PCB-ului controlerului
Proiectarea PCB-ului controlerului
Proiectarea PCB-ului controlerului
Proiectarea PCB-ului controlerului
Proiectarea PCB-ului controlerului

Pentru a controla încălzitorul PCB aleg un MCU SAMD21E18 pe care l-am folosit și în proiectul meu GlassCube. Acest microcontroler are suficiente pini pentru a controla toate cele 17 segmente de încălzire și a citi senzorul DHT22. De asemenea, are USB nativ și poate fi intermitent cu bootloader-ul CircuitPython de la Adafruit. Un conector micro USB a fost folosit ca sursă de alimentare și pentru programarea MCU. Segmentele de încălzire sunt controlate de 9 MOSFET-uri cu două canale (SP8K24FRATB). Acestea pot gestiona până la 6 A și au o tensiune de prag de poartă <2,5 V, astfel încât să poată fi comutate de semnalul logic de 3,3 V de la MCU. Am găsit acest fir foarte util pentru a mă ajuta să proiectez circuitul de control al încălzitorului.

Am comandat PCB-urile de la PCBWay și piesele electronice separat de Mouser și am asamblat eu însumi PCB-urile pentru a economisi costuri. Am folosit un distribuitor de pastă de lipit așezat piesele manual și le-am lipit cu un încălzitor cu infraroșu IC. Cu toate acestea, din cauza cantității relativ mari de componente implicate și a prelucrării necesare, acest lucru a fost destul de obositor și mă gândesc să folosesc un serviciu de asamblare în viitor.

Din nou fișierele de pe forum pot fi găsite pe GitHub. Acolo puteți găsi o versiune îmbunătățită a PCB-ului care utilizează un conector USB-C în loc de micro USB. De asemenea, am corectat distanța dintre orificiile prin senzorul DHT22 și am adăugat un conector cu 10 pini pentru a lumina mai ușor încărcătorul de încărcare prin J-Link.

Pasul 3: CircuitPython Bootloader

La început, am fulgerat SAMD21 cu un bootloader UF2 bazat pe Adafruit's Trinket M0. Bootloader-ul a trebuit să fie ușor modificat deoarece Trinket are un LED conectat la unul dintre pinii pe care îi folosesc pentru încălzire. În caz contrar, acest pin se va ridica pentru o scurtă perioadă de timp după pornire și va încălzi segmentul conectat cu putere maximă. Intermitentul bootloaderului se face prin conectarea unui J-Link la MCU prin porturile SWD și SWC. Întregul proces este descris în detaliu pe site-ul web Adafruit. După instalarea bootloader-ului, MCU este recunoscut ca o unitate flash atunci când este conectat prin portul micro USB, iar bootloader-urile ulterioare pot fi pur și simplu instalate prin tragerea unui fișier UF2 pe unitate.

Ca următor pas am vrut să instalez un bootloader CircuitPython. Cu toate acestea, deoarece placa mea folosește mulți pini care nu sunt conectați pe Trinket M0, a trebuit mai întâi să modific ușor configurația plăcii. Din nou, există un tutorial excelent pentru acest lucru pe site-ul web Adafruit. Practic, trebuie doar să comentăm câteva pini ignorate în mpconfigboard.h și apoi să recompilăm totul. Fișierele de încărcare personalizate sunt disponibile și pe GitHub.

Pasul 4: CircuitPython Code

CircuitPython Code
CircuitPython Code
CircuitPython Code
CircuitPython Code

După instalarea programului de încărcare CircuitPython, puteți programa placa salvând codul dvs. ca fișier code.py direct pe unitatea flash USB. Codul pe care l-am scris citește senzorul DHT22 și apoi afișează alternativ temperatura și umiditatea prin încălzirea segmentelor corespunzătoare. După cum sa menționat deja, încălzirea se face prin comutarea MOSFET-urilor cu un semnal PWM. În loc să configurez pinii ca ieșiri PWM, am generat un semnal PWM „fals” cu o frecvență scăzută de comutare de 100 Hz în cod folosind întârzieri. Pentru a reduce în continuare consumul de curent, nu pornesc segmentele simultan, ci secvențial, așa cum se arată în schema de mai sus. Există, de asemenea, câteva trucuri pentru a face încălzirea segmentelor mai uniformă. În primul rând, ciclul de funcționare este puțin diferit pentru fiecare segment. De exemplu, linia semnului „%” are nevoie de un ciclu de funcționare mult mai mare datorită rezistenței sale mai mari. De asemenea, am constatat că segmentele care sunt înconjurate de multe alte segmente trebuie încălzite mai puțin. În plus, dacă un segment a fost încălzit în „cursa” anterioară, ciclul de funcționare poate fi redus în următorul. În cele din urmă, timpul de încălzire și răcire este adaptat la temperatura ambiantă care este măsurată în mod convenabil de senzorul DHT22. Pentru a găsi constante de timp rezonabile, am calibrat afișajul într-o cameră climatică la care, din fericire, am acces la locul de muncă.

Puteți găsi codul complet pe GitHub.

Pasul 5: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Asamblarea afișajului este destul de ușoară și poate fi împărțită în pașii următori

  1. Anteturi de lipire pin feminin pentru a încălzi PCB
  2. Atașați foaia termocromă autoadezivă la PCB-ul încălzitorului
  3. Lipiți senzorul DHT22 la PCB-ul controlerului și fixați-l cu șurub și piuliță M2
  4. Lipiți anteturile pinului masculin la PCB-ul controlerului
  5. Conectați ambele PCB-uri și puneți-le în suportul tipărit 3D

Pasul 6: Proiect finalizat

Proiect finalizat
Proiect finalizat
Proiect finalizat
Proiect finalizat

Sunt destul de mulțumit de jocul terminat care rulează în mod constant în camera noastră de zi. Scopul realizării unei versiuni mai mici și mai simple a afișajului meu termocrom original a fost cu siguranță atins și aș dori să mulțumesc încă o dată utilizatorului DmitriyU2 pentru sugestie. De asemenea, proiectul m-a ajutat să-mi îmbunătățesc abilitățile de proiectare PCB în Eagle și am aflat despre utilizarea MOSFET-urilor ca switch-uri.

S-ar putea îmbunătăți și mai mult designul făcând o carcasă frumoasă pentru PCB-uri. De asemenea, mă gândesc să creez un ceas digital în același stil.

Dacă îți place acest proiect, îl poți reface sau cumpăra din magazinul meu Tindie. De asemenea, luați în considerare votarea pentru mine în provocarea de proiectare PCB.

Provocarea PCB Design
Provocarea PCB Design
Provocarea PCB Design
Provocarea PCB Design

Premiul Judecătorilor în PCB Design Challenge

Recomandat: