Sommario:

Display termocromico di temperatura e umidità - Versione PCB: 6 passaggi (con immagini)
Display termocromico di temperatura e umidità - Versione PCB: 6 passaggi (con immagini)

Video: Display termocromico di temperatura e umidità - Versione PCB: 6 passaggi (con immagini)

Video: Display termocromico di temperatura e umidità - Versione PCB: 6 passaggi (con immagini)
Video: Thermochromic Temperature & Humidity Display - PCB Version 2024, Dicembre
Anonim
Image
Image
Progettazione del PCB del riscaldatore
Progettazione del PCB del riscaldatore

Qualche tempo fa ho realizzato un progetto chiamato Display termocromico per temperatura e umidità in cui ho costruito un display a 7 segmenti con lastre di rame riscaldate/raffreddate da elementi peltier. Le lastre di rame sono state ricoperte da una lamina termocromica che cambia colore con la temperatura. Questo progetto è una versione più piccola del display che invece di Peltiers utilizza un PCB con tracce di riscaldamento come suggerito dall'utente DmitriyU2 nella sezione commenti. L'utilizzo di un riscaldatore PCB consente un design molto più semplice e compatto. Il riscaldamento è anche più efficiente, il che porta a un cambio di colore più rapido.

Guarda il video per vedere come funziona il display.

Dato che mi sono rimasti alcuni PCB, vendo anche questo display nel mio negozio Tindie.

Forniture

  • PCB riscaldatore (vedi il mio GitHub per i file Gerber)
  • PCB di controllo (vedi il mio GitHub per file Gerber e BoM)
  • Sensore DHT22 (es. ebay.de)
  • Supporto stampato in 3D (vedi il mio GitHub per il file stl)
  • Foglio adesivo termocromico, 150x150 mm, 30-35°C (SFXC)
  • Bullone M2x6 + dado
  • 2x pin header 1x9, 2,54 mm (es. mouser.com)
  • 2x connettori per scheda SMD 1x9, 2,54 mm (es. mouser.com)

Passaggio 1: progettazione del PCB del riscaldatore

Progettazione del PCB del riscaldatore
Progettazione del PCB del riscaldatore
Progettazione del PCB del riscaldatore
Progettazione del PCB del riscaldatore

Il PCB del riscaldatore è stato progettato in Eagle. Le dimensioni del PCB sono 100x150 mm perché 150x150 mm è la dimensione standard dei fogli termocromici che ho utilizzato. All'inizio ho fatto uno schizzo dei segmenti in Fusion360 che è stato salvato come dxf e poi importato in Eagle. I segmenti hanno spazi fresati tra di loro e sono collegati solo da piccoli ponti. Ciò migliora l'isolamento termico dei singoli segmenti e quindi consente un riscaldamento più rapido e riduce la "diafonia termica". I segmenti sono stati riempiti con tracce PCB sullo strato superiore (visibili in rosso) utilizzando lo strumento meandro in Eagle. Ho usato una carreggiata e una spaziatura di 6 mil, che è la dimensione minima che può essere prodotta da PCBWay senza costi aggiuntivi. Ogni traccia è serpeggiante tra due vie che sono poi collegate ai pin tramite lo strato inferiore (visto in blu) utilizzando tracce da 32 mil molto più spesse. Tutti i segmenti condividono un terreno comune.

Non ho fatto alcun calcolo per la potenza di riscaldamento necessaria per un certo aumento di temperatura né ho calcolato la resistenza prevista di un segmento. Ho pensato che qualsiasi regolazione della potenza di riscaldamento può essere effettuata utilizzando un segnale PWM con duty cycle variabile. In seguito ho scoperto che i segmenti si riscaldano abbastanza velocemente quando vengono alimentati tramite la porta USB da 5 V utilizzando un ciclo di lavoro del ~ 5%. La corrente totale durante il riscaldamento di tutti i 17 segmenti è di circa 1,6 A.

Tutti i file della scheda possono essere trovati sul mio GitHub.

Passaggio 2: progettazione del PCB del controller

Progettazione del PCB del controller
Progettazione del PCB del controller
Progettazione del PCB del controller
Progettazione del PCB del controller
Progettazione del PCB del controller
Progettazione del PCB del controller

Per controllare il riscaldatore PCB scelgo un MCU SAMD21E18 che ho utilizzato anche nel mio progetto GlassCube. Questo microcontrollore ha abbastanza pin per controllare tutti i 17 segmenti del riscaldatore e leggere il sensore DHT22. Ha anche USB nativo e può essere flashato con il bootloader CircuitPython di Adafruit. Un connettore micro USB è stato utilizzato come alimentazione e per la programmazione dell'MCU. I segmenti del riscaldatore sono controllati da 9 MOSFET a doppio canale (SP8K24FRATB). Questi possono gestire fino a 6 A e hanno una tensione di soglia del gate <2,5 V in modo che possano essere commutati dal segnale logico a 3,3 V dall'MCU. Ho trovato questo thread molto utile per aiutarmi a progettare il circuito di controllo del riscaldatore.

Ho ordinato i PCB da PCBWay e le parti elettroniche separatamente da Mouser e ho assemblato i PCB da solo per risparmiare sui costi. Ho usato un distributore di pasta saldante, ho posizionato le parti a mano e le ho saldate con un riscaldatore IC a infrarossi. Tuttavia, a causa della quantità relativamente grande di componenti coinvolti e della rilavorazione richiesta, questo è stato piuttosto noioso e sto considerando di utilizzare un servizio di assemblaggio in futuro.

Anche in questo caso i file della scheda possono essere trovati sul mio GitHub. Lì puoi trovare una versione migliorata del PCB che utilizza un connettore USB-C anziché micro USB. Ho anche corretto la spaziatura dei fori passanti per il sensore DHT22 e aggiunto un connettore a 10 pin per facilitare il lampeggio del bootloader tramite J-Link.

Passaggio 3: Bootloader CircuitPython

All'inizio, ho flashato il SAMD21 con un bootloader UF2 basato su Trinket M0 di Adafruit. Il bootloader doveva essere leggermente modificato perchè il Trinket ha un led collegato ad uno dei pin che utilizzo per il riscaldamento. Altrimenti questo pin andrà in alto per un breve periodo dopo l'avvio e riscalderà il segmento collegato a piena potenza. Il flashing del bootloader viene effettuato collegando un J-Link all'MCU tramite le porte SWD e SWC. L'intero processo è descritto in dettaglio sul sito Web di Adafruit. Dopo aver installato il bootloader, l'MCU viene riconosciuto come un'unità flash quando è collegato tramite la porta micro USB e i successivi bootloader possono essere semplicemente installati trascinando un file UF2 sull'unità.

Come passo successivo volevo installare un bootloader CircuitPython. Tuttavia, poiché la mia scheda utilizza molti pin che non sono collegati al Trinket M0, ho dovuto prima modificare leggermente la configurazione della scheda. Anche in questo caso c'è un ottimo tutorial per questo sul sito Web di Adafruit. Fondamentalmente, basta commentare alcuni pin ignorati in mpconfigboard.he poi ricompilare tutto. I file di bootloader personalizzati sono disponibili anche sul mio GitHub.

Passaggio 4: codice CircuitPython

Codice CircuitPython
Codice CircuitPython
Codice CircuitPython
Codice CircuitPython

Dopo che il bootloader di CircuitPython è stato installato, puoi semplicemente programmare la scheda salvando il tuo codice come file code.py direttamente sull'unità flash USB. Il codice che ho scritto legge il sensore DHT22 e quindi visualizza alternativamente la temperatura e l'umidità riscaldando i segmenti corrispondenti. Come già accennato il riscaldamento avviene commutando i MOSFET con un segnale PWM. Invece di configurare i pin come uscite PWM, ho generato un segnale PWM "falso" con una bassa frequenza di commutazione di 100 Hz nel codice utilizzando i ritardi. Per abbassare ulteriormente il consumo di corrente non accendo i segmenti contemporaneamente ma in sequenza come mostrato nello schema sopra. Ci sono anche alcuni accorgimenti per rendere più uniforme il riscaldamento dei segmenti. Prima di tutto il ciclo di lavoro è leggermente diverso per ogni segmento. Ad esempio, il trattino del segno "%" richiede un ciclo di lavoro molto più ampio a causa della sua maggiore resistenza. Inoltre ho scoperto che i segmenti che sono circondati da molti altri segmenti devono essere riscaldati di meno. Inoltre, se un segmento è stato riscaldato nella "corsa" precedente, il ciclo di lavoro può essere ridotto nella successiva. Infine, il tempo di riscaldamento e raffreddamento viene adattato alla temperatura ambiente che viene opportunamente misurata dal sensore DHT22. Per trovare costanti di tempo ragionevoli ho effettivamente calibrato il display in una camera climatica a cui fortunatamente ho accesso al lavoro.

Puoi trovare il codice completo sul mio GitHub.

Passaggio 5: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Il montaggio del display è piuttosto semplice e può essere suddiviso nei seguenti passaggi

  1. Saldare le intestazioni dei pin femmina al PCB del riscaldatore
  2. Attaccare il foglio termocromico autoadesivo al PCB del riscaldatore
  3. Saldare il sensore DHT22 al PCB del controller e fissarlo con bullone e dado M2
  4. Saldare le intestazioni dei pin maschio al PCB del controller
  5. Collega entrambi i PCB e posizionali nel supporto stampato in 3D

Passaggio 6: progetto finito

Progetto finito
Progetto finito
Progetto finito
Progetto finito

Sono abbastanza soddisfatto del display finito che ora è costantemente in funzione nel nostro soggiorno. L'obiettivo di realizzare una versione più piccola e più semplice del mio display termocromico originale è stato sicuramente raggiunto e vorrei ringraziare ancora una volta l'utente DmitriyU2 per il suggerimento. Il progetto mi ha anche aiutato a migliorare le mie capacità di progettazione PCB in Eagle e ho imparato l'uso dei MOSFET come interruttori.

Si potrebbe forse migliorare ulteriormente il design creando un bel contenitore per i PCB. Sto anche pensando di realizzare un orologio digitale nello stesso stile.

Se ti piace questo progetto puoi semplicemente rifarlo o acquistarlo sul mio negozio Tindie. Considera anche di votare per me nella sfida di progettazione PCB.

Sfida di progettazione PCB
Sfida di progettazione PCB
Sfida di progettazione PCB
Sfida di progettazione PCB

Premio della giuria nella PCB Design Challenge

Consigliato: