Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Design af varmekortet
- Trin 2: Design af controllerens printkort
- Trin 3: CircuitPython Bootloader
- Trin 4: CircuitPython -kode
- Trin 5: Montering
- Trin 6: Færdiggjort projekt
Video: Termokrom temperatur- og fugtighedsdisplay - PCB -version: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
For et stykke tid siden lavede jeg et projekt kaldet Thermochromic Temperature & Humidity Display, hvor jeg byggede et 7-segment display af kobberplader, der blev opvarmet/afkølet af peltierelementer. Kobberpladerne var dækket med en termokrom folie, der ændrer farve med temperaturen. Dette projekt er en mindre version af displayet, som i stedet for peltiers bruger et printkort med varmespor som foreslået af bruger DmitriyU2 i kommentarfeltet. Brug af en PCB -varmelegeme giver mulighed for et meget enklere og mere kompakt design. Opvarmningen er også mere effektiv, hvilket fører til en hurtigere farveændring.
Se videoen for at se, hvordan displayet fungerer.
Da jeg havde et par PCB tilbage, sælger jeg også denne skærm i min Tindie -butik.
Forbrugsvarer
- Heater PCB (se min GitHub for Gerber -filer)
- Styr PCB (se min GitHub for Gerber -filer og BoM)
- DHT22 -sensor (f.eks. Ebay.de)
- 3D -trykt stativ (se min GitHub for stl -fil)
- Termokrom lim, 150x150 mm, 30-35 ° C (SFXC)
- M2x6 bolt + møtrik
- 2x benhoved 1x9, 2,54 mm (f.eks. Mouser.com)
- 2x SMD -kortstik 1x9, 2,54 mm (f.eks. Mouser.com)
Trin 1: Design af varmekortet
Varmerens printkort blev designet i Eagle. PCB -dimensionerne er 100x150 mm, fordi 150x150 mm er standardstørrelsen på de termokrome plader, jeg brugte. Først lavede jeg en skitse af segmenterne i Fusion360, som blev gemt som dxf og derefter importeret til Eagle. Segmenterne har fræsede huller imellem dem og er kun forbundet med små broer. Dette forbedrer varmeisoleringen af de enkelte segmenter og muliggør derfor hurtigere opvarmning og reducerer 'termisk krydstale'. Segmenterne blev fyldt med PCB -spor på det øverste lag (set i rødt) ved hjælp af meanderværktøjet i Eagle. Jeg brugte en sporbredde og afstand på 6 mil, hvilket er den mindste størrelse, der kan fremstilles af PCBWay uden ekstra omkostninger. Hvert spor slynges mellem to vias, som derefter forbindes til stifterne via bundlaget (set i blåt) ved hjælp af meget tykkere 32 mil spor. Alle segmenter er fælles.
Jeg foretog ikke nogen beregninger for den varmeeffekt, der kræves til en bestemt temperaturstigning, og jeg har heller ikke beregnet den forventede modstand for et segment. Jeg regnede med, at enhver justering af varmeeffekten kan foretages ved hjælp af et PWM -signal med varierende driftscyklus. Jeg fandt senere ud af, at segmenterne varmes rimeligt hurtigt op, når de drives via 5V USB -porten ved hjælp af en driftscyklus på ~ 5%. Den samlede strøm ved opvarmning af alle 17 segmenter er omkring 1,6 A.
Alle bestyrelsesfiler kan findes på min GitHub.
Trin 2: Design af controllerens printkort
For at styre printkortvarmeren vælger jeg en SAMD21E18 MCU, som jeg også brugte i mit GlassCube -projekt. Denne mikrokontroller har nok ben til at styre alle 17 varmesegmenter og aflæse DHT22 -sensoren. Det har også indbygget USB og kan flashes med Adafruit's CircuitPython bootloader. Et mikro USB -stik blev brugt som strømforsyning og til programmering af MCU. Varmeregmenterne styres af 9 dobbeltkanals MOSFET'er (SP8K24FRATB). Disse kan klare op til 6 A og have en gate -tærskelspænding <2,5 V, så de kan skiftes af 3,3 V -logik -signalet fra MCU'en. Jeg fandt denne tråd meget nyttig til at hjælpe mig med at designe varmekontrolkredsløbet.
Jeg bestilte printkortene fra PCBWay og de elektroniske dele separat fra Mouser og monterede printkortene selv for at spare omkostninger. Jeg brugte en loddepasta dispenser placeret delene i hånden og loddet dem med en infrarød IC varmelegeme. På grund af den relativt store mængde af involverede komponenter og den nødvendige omarbejdning var dette dog ret kedeligt, og jeg overvejer at bruge en samlingstjeneste i fremtiden.
Igen kan bestyrelsesfilerne findes på min GitHub. Der kan du finde en forbedret version af printkortet, der bruger et USB-C-stik i stedet for mikro-USB. Jeg korrigerede også afstanden mellem gennemgangshullerne til DHT22-sensoren og tilføjede et 10-benet stik for lettere at blinke bootloaderen via J-Link.
Trin 3: CircuitPython Bootloader
Først blinkede jeg SAMD21 med en UF2 bootloader baseret på Adafruit's Trinket M0. Bootloaderen skulle ændres lidt, fordi Trinket har en LED tilsluttet en af stifterne, som jeg bruger til opvarmning. Ellers går denne pin højt i en kort tid efter opstart og opvarmer det tilsluttede segment med fuld effekt. Blinker bootloaderen udføres ved at forbinde en J-Link til MCU'en via SWD- og SWC-portene. Hele processen er beskrevet detaljeret på Adafruit -webstedet. Efter installation af bootloaderen genkendes MCU'en som et flashdrev, når den er tilsluttet via mikro -USB -porten, og efterfølgende bootloadere kan simpelthen installeres ved at trække en UF2 -fil ind på drevet.
Som et næste trin ville jeg installere en CircuitPython bootloader. Men da mit bord bruger mange pins, der ikke er tilsluttet Trinket M0, var jeg først nødt til at ændre kortets konfiguration lidt. Igen er der en god vejledning til dette på Adafruit -webstedet. Grundlæggende skal man bare kommentere et par ignorerede pins i mpconfigboard.h og derefter kompilere alt igen. De brugerdefinerede bootloader -filer er også tilgængelige på min GitHub.
Trin 4: CircuitPython -kode
Efter at CircuitPython bootloader er installeret, kan du bare programmere kortet ved at gemme din kode som en code.py -fil direkte på USB -flashdrevet. Koden, jeg skrev, læser DHT22 -sensoren op og viser derefter skiftevis temperaturen og fugtigheden ved at opvarme de tilsvarende segmenter. Som allerede nævnt sker opvarmningen ved at skifte MOSFET'erne med et PWM -signal. I stedet for at konfigurere benene som PWM -udgange, genererede jeg et "falsk" PWM -signal med en lav koblingsfrekvens på 100 Hz i koden ved hjælp af forsinkelser. For yderligere at sænke det aktuelle forbrug tænder jeg ikke for segmenterne samtidigt, men sekventielt som vist i skematikken ovenfor. Der er også et par tricks til at gøre opvarmningen af segmenterne mere jævn. Først og fremmest er driftscyklussen en smule anderledes for hvert segment. For eksempel har bindestreg for "%" -tegnet brug for en meget større driftscyklus på grund af dets højere modstand. Jeg fandt også ud af, at segmenter, der er omgivet af mange andre segmenter, skal opvarmes mindre. Hvis et segment derudover blev opvarmet i det foregående "løb", kan driftscyklussen reduceres i det næste. Endelig tilpasses opvarmnings- og køletiden til den omgivende temperatur, som bekvemt måles af DHT22 -sensoren. For at finde rimelige tidskonstanter kalibrerede jeg faktisk displayet i et klimakammer, som jeg heldigvis har adgang til på arbejdet.
Du kan finde den fulde kode på min GitHub.
Trin 5: Montering
Monteringen af skærmen er ret let og kan opdeles i de følgende trin
- Lodde kvindelige pinhoveder til varmelegeme PCB
- Fastgør selvklæbende termokromt ark til varmelegemets printkort
- Lodde DHT22 sensor til controller printkort og fastgøres med M2 bolt og møtrik
- Lodde hanstifter til han -PCB
- Tilslut begge printkort og placer dem i 3D -trykt stativ
Trin 6: Færdiggjort projekt
Jeg er ganske tilfreds med den færdige diplay, som nu konstant kører i vores stue. Målet om at lave en mindre, enklere version af mit originale termokromiske display blev bestemt nået, og jeg vil gerne takke brugeren DmitriyU2 endnu en gang for forslaget. Projektet hjalp mig også med at forbedre mine PCB -designfærdigheder i Eagle, og jeg lærte om brugen af MOSFET'er som switches.
Man kunne måske yderligere forbedre designet ved at lave et flot kabinet til printkortene. Jeg overvejer også at lave et digitalt ur i samme stil.
Hvis du kan lide dette projekt, kan du bare lave det om eller købe det i min Tindie -butik. Overvej også at stemme på mig i PCB -designudfordringen.
Dommerpris i PCB Design Challenge
Anbefalede:
BBQ temperatur- og kødsensor på ESP8266 med display: 5 trin (med billeder)
BBQ temperatur- og kødsensor på ESP8266 med display: I denne instruktionsbog viser jeg dig, hvordan du laver din egen version af et grillværktøj, der måler den aktuelle temperatur i din grill og tænder en blæser for at tænde den, hvis det er nødvendigt. Ud over dette er der også en kødkerntemperaturføler, der
IoT temperatur- og fugtighedsmåler med OLED -skærm: 5 trin (med billeder)
IoT temperatur- og luftfugtighedsmåler med OLED -skærm: Kontroller temperatur og luftfugtighed på en OLED -skærm, når som helst du ønsker det, og saml samtidig disse data i en IoT -platform. Sidste uge udgav jeg et projekt kaldet Simplest IoT temperatur- og luftfugtighedsmåler. Det er et godt projekt, fordi du kan
Ugedag, kalender, tid, fugtighed/temperatur med batterisparer: 10 trin (med billeder)
Ugedag, kalender, tid, fugtighed/temperatur med batterisparer: Strømbesparelsestilstanden her er, hvad der adskiller denne instruktør fra andre eksempler, der viser ugedag, måned, dag i måneden, tid, fugtighed og temperatur. Det er denne kapacitet, der gør det muligt at køre dette projekt fra et batteri, uden at
Termokrom temperatur- og fugtighedsvisning: 10 trin (med billeder)
Termokrom temperatur- og fugtighedsvisning: Jeg har arbejdet på dette projekt i et stykke tid. Den originale idé fik jeg efter at have bygget en TEC -controller demonstrator på arbejde til en messe. For at vise TEC'ernes varme- og køleegenskaber brugte vi termokrom maling, der
Overvåg og registrer temperatur med Bluetooth LE og RaspberryPi: 9 trin (med billeder)
Overvåg og registrer temperatur med Bluetooth LE og RaspberryPi: Denne instruktive handler om, hvordan man sammensætter et multi-node temperaturovervågningssystem med Bluetooth LE-sensorfejl fra Blue Radios (BLEHome) og RaspberryPi 3B Takket være udviklingen af Bluetooth LE-standarden er der nu let tilgængelig