Innehållsförteckning:

Termokrom temperatur- och luftfuktighetsdisplay - PCB -version: 6 steg (med bilder)
Termokrom temperatur- och luftfuktighetsdisplay - PCB -version: 6 steg (med bilder)

Video: Termokrom temperatur- och luftfuktighetsdisplay - PCB -version: 6 steg (med bilder)

Video: Termokrom temperatur- och luftfuktighetsdisplay - PCB -version: 6 steg (med bilder)
Video: Scentroid's DR2000 Flying Laboratory Product Seminar B 09.09.2020 (Subtitled) 2024, November
Anonim
Image
Image
Utforma värmekretsen
Utforma värmekretsen

För ett tag sedan gjorde jag ett projekt som heter Thermochromic Temperature & Humidity Display där jag byggde en 7-segmentskärm av kopparplattor som värmdes/kyldes av peltierelement. Kopparplattorna täcktes med en termokrom folie som ändrar färg med temperaturen. Detta projekt är en mindre version av displayen som istället för peltiers använder ett kretskort med uppvärmningsspår som föreslagits av användaren DmitriyU2 i kommentarsfältet. Att använda en kretskortsvärmare möjliggör en mycket enklare och mer kompakt design. Uppvärmningen är också mer effektiv vilket leder till en snabbare färgförändring.

Titta på videon för att se hur displayen fungerar.

Eftersom jag hade några PCB kvar så säljer jag också den här displayen i min Tindie -butik.

Tillbehör

  • Värmare PCB (se min GitHub för Gerber -filer)
  • Styr PCB (se min GitHub för Gerber -filer och BoM)
  • DHT22 -sensor (t.ex. ebay.de)
  • 3D -tryckt stativ (se min GitHub för stl -fil)
  • Termokrom lim, 150x150 mm, 30-35 ° C (SFXC)
  • M2x6 bult + mutter
  • 2x stifthuvud 1x9, 2,54 mm (t.ex. mouser.com)
  • 2x SMD -kortkontakt 1x9, 2,54 mm (t.ex. mouser.com)

Steg 1: Designa värmekretsen

Designa värmaren PCB
Designa värmaren PCB
Utforma värmekretsen
Utforma värmekretsen

Värmaren PCB designades i Eagle. PCB -måtten är 100x150 mm eftersom 150x150 mm är standardstorleken på de termokroma plåtarna jag använde. Först gjorde jag en skiss över segmenten i Fusion360 som sparades som dxf och sedan importerades till Eagle. Segmenten har frästa mellanrum mellan dem och är endast anslutna med små broar. Detta förbättrar värmeisoleringen för de enskilda segmenten och möjliggör därför snabbare uppvärmning och minskar "termisk överhörning". Segmenten fylldes med PCB -spår på det översta lagret (sett i rött) med hjälp av meanderverktyget i Eagle. Jag använde en spårvidd och ett avstånd på 6 mil, vilket är den minsta storlek som kan tillverkas av PCBWay utan extra kostnader. Varje spår slingras mellan två vias som sedan ansluts till stiften via bottenlagret (sett i blått) med mycket tjockare 32 mil spår. Alla segment delar en gemensam grund.

Jag gjorde inga beräkningar för den värmeeffekt som krävs för en viss temperaturhöjning och jag beräknade inte heller det förväntade motståndet för ett segment. Jag tänkte att varje justering av värmeeffekten kan göras med hjälp av en PWM -signal med varierande driftscykel. Jag upptäckte senare att segmenten värms ganska snabbt när de drivs via 5V USB -porten med en driftscykel på ~ 5%. Den totala strömmen vid uppvärmning av alla 17 segment är cirka 1,6 A.

Alla kortfiler finns på min GitHub.

Steg 2: Designa styrkortet

Designa styrkortet
Designa styrkortet
Designa styrkortet
Designa styrkortet
Designa styrkortet
Designa styrkortet

För att styra kretskortsvärmaren väljer jag en SAMD21E18 MCU som jag också använde i mitt GlassCube -projekt. Denna mikrokontroller har tillräckligt med stift för att styra alla 17 värmesegment och läsa av DHT22 -sensorn. Den har också inbyggd USB och kan blixtas med Adafruit's CircuitPython bootloader. En mikro -USB -kontakt användes som strömförsörjning och för programmering av MCU. Värmarsegmenten styrs av 9 tvåkanals MOSFET (SP8K24FRATB). Dessa kan hantera upp till 6 A och har en gränströskelspänning <2,5 V så att de kan växlas med 3,3 V logiksignal från MCU. Jag tyckte att den här tråden var mycket hjälpsam för att hjälpa mig att utforma värmekretsens krets.

Jag beställde kretskorten från PCBWay och de elektroniska delarna separat från Mouser och monterade kretskorten själv för att spara kostnader. Jag använde en lödpasta -dispenser som placerade delarna för hand och lödde dem med en infraröd IC -värmare. Men på grund av den relativt stora mängden komponenter som är inblandade och den nödvändiga omarbetningen var detta ganska tråkigt och jag överväger att använda en monteringstjänst i framtiden.

Återigen kan tavlorna hittas på min GitHub. Där kan du hitta en förbättrad version av kretskortet som använder en USB-C-kontakt istället för mikro-USB. Jag korrigerade också avståndet mellan genomgående hål för DHT22-sensorn och lade till en 10-polig kontakt för enklare blinkning av startladdaren via J-Link.

Steg 3: CircuitPython Bootloader

Först blinkade jag SAMD21 med en UF2 bootloader baserad på Adafruit's Trinket M0. Bootloader måste ändras något eftersom Trinket har en lysdiod ansluten till en av stiften som jag använder för uppvärmning. Annars kommer denna pin att gå högt en kort tid efter start och värma det anslutna segmentet med full effekt. Blinkande av startladdaren görs genom att ansluta en J-Link till MCU via SWD- och SWC-portarna. Hela processen beskrivs i detalj på Adafruit -webbplatsen. Efter installation av bootloader känns MCU igen som en flash -enhet när den är ansluten via mikro -USB -porten och efterföljande bootloaders kan enkelt installeras genom att dra en UF2 -fil till enheten.

Som ett nästa steg ville jag installera en CircuitPython bootloader. Men eftersom mitt kort använder många stift som inte är anslutna på Trinket M0, var jag först tvungen att ändra kortets konfiguration något. Återigen finns det en bra handledning för detta på Adafruit -webbplatsen. I grund och botten måste man bara kommentera några ignorerade stift i mpconfigboard.h och sedan kompilera om allt. De anpassade bootloader -filerna är också tillgängliga på min GitHub.

Steg 4: CircuitPython -kod

CircuitPython -kod
CircuitPython -kod
CircuitPython -kod
CircuitPython -kod

Efter att CircuitPython bootloader har installerats kan du bara programmera kortet genom att spara din kod som en code.py -fil direkt till USB -flashenheten. Koden jag skrev läser upp DHT22 -sensorn och visar sedan växelvis temperaturen och luftfuktigheten genom att värma motsvarande segment. Som redan nämnts sker uppvärmningen genom att byta MOSFET med en PWM -signal. Istället för att konfigurera stiften som PWM -utgångar genererade jag en "falsk" PWM -signal med en låg kopplingsfrekvens på 100 Hz i koden med hjälp av fördröjningar. För att ytterligare sänka strömförbrukningen slår jag inte på segmenten samtidigt utan sekventiellt som visas i schemat ovan. Det finns också några knep för att göra uppvärmningen av segmenten jämnare. Först och främst är arbetscykeln lite annorlunda för varje segment. Till exempel strecket på "%" -tecknet behöver en mycket större driftscykel på grund av dess högre motstånd. Jag fann också att segment som omges av många andra segment måste värmas mindre. Dessutom, om ett segment upphettades i föregående "körning" kan arbetscykeln reduceras i nästa. Slutligen anpassas uppvärmnings- och kyltiden till den omgivande temperaturen som bekvämt mäts av DHT22 -sensorn. För att hitta rimliga tidskonstanter kalibrerade jag faktiskt displayen i en klimatkammare som jag lyckligtvis har tillgång till på jobbet.

Du hittar hela koden på min GitHub.

Steg 5: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Monteringen av skärmen är ganska enkel och kan delas upp i följande steg

  1. Lödhona för kvinnliga stift till värmare -kretskort
  2. Fäst det självhäftande termokroma arket på värmarens kretskort
  3. Löd DHT22 -sensor till styrkortet och fäst med M2 -bult och mutter
  4. Lödhylsor till hantering av kretskort
  5. Anslut båda kretskorten och placera i 3D -tryckt stativ

Steg 6: Avslutat projekt

Avslutat projekt
Avslutat projekt
Avslutat projekt
Avslutat projekt

Jag är ganska nöjd med den färdiga diplayen som nu ständigt pågår i vårt vardagsrum. Målet att göra en mindre, enklare version av min ursprungliga termokroma display uppnåddes definitivt och jag vill tacka användaren DmitriyU2 än en gång för förslaget. Projektet hjälpte mig också att förbättra mina PCB -designkunskaper i Eagle och jag lärde mig att använda MOSFET som switchar.

Man kan kanske ytterligare förbättra designen genom att göra ett fint hölje för kretskortet. Jag funderar också på att göra en digital klocka i samma stil.

Om du gillar det här projektet kan du bara göra om det eller köpa det i min Tindie -butik. Överväg också att rösta på mig i PCB -designutmaningen.

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

Domarpris i PCB Design Challenge

Rekommenderad: