Sisällysluettelo:

Lämpökrominen lämpötilan ja kosteuden näyttö - PCB -versio: 6 vaihetta (kuvilla)
Lämpökrominen lämpötilan ja kosteuden näyttö - PCB -versio: 6 vaihetta (kuvilla)

Video: Lämpökrominen lämpötilan ja kosteuden näyttö - PCB -versio: 6 vaihetta (kuvilla)

Video: Lämpökrominen lämpötilan ja kosteuden näyttö - PCB -versio: 6 vaihetta (kuvilla)
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Heinäkuu
Anonim
Image
Image
Lämmittimen piirilevyn suunnittelu
Lämmittimen piirilevyn suunnittelu

Jokin aika sitten a teki projektin nimeltä Thermochromic Temperature & Humidity Display, jossa rakensin 7-segmenttisen näytön kuparilevyistä, joita lämmitettiin/jäähdytettiin peltier-elementeillä. Kuparilevyt peitettiin lämpökromikalvolla, joka muuttaa väriä lämpötilan mukaan. Tämä projekti on pienempi versio näytöstä, joka käyttää peltiersin sijaan piirilevyä, jossa on lämmitysjälkiä, kuten käyttäjä DmitriyU2 ehdotti kommenttiosassa. Piirilevylämmittimen käyttö mahdollistaa paljon yksinkertaisemman ja pienemmän rakenteen. Lämmitys on myös tehokkaampaa, mikä johtaa nopeampaan värinvaihtoon.

Katso videolta, miten näyttö toimii.

Koska minulla oli muutama piirilevy jäljellä, myyn myös tämän näytön Tindie -myymälässäni.

Tarvikkeet

  • Lämmitinpiirilevy (katso GitHubini Gerber -tiedostoista)
  • Ohjaa piirilevyä (katso GitHubini Gerber -tiedostoista ja BoM: stä)
  • DHT22 -anturi (esim. Ebay.de)
  • 3D -tulostettu jalusta (katso GitHub stl -tiedostosta)
  • Termokromaattinen liima-arkki, 150x150 mm, 30-35 ° C (SFXC)
  • M2x6 pultti + mutteri
  • 2x nastainen otsikko 1x9, 2,54 mm (esim. Mouser.com)
  • 2x SMD -kortin liitin 1x9, 2,54 mm (esim. Mouser.com)

Vaihe 1: Lämmittimen piirilevyn suunnittelu

Lämmittimen piirilevyn suunnittelu
Lämmittimen piirilevyn suunnittelu
Lämmittimen piirilevyn suunnittelu
Lämmittimen piirilevyn suunnittelu

Lämmittimen piirilevy on suunniteltu Eaglessa. Piirilevyn mitat ovat 100x150 mm, koska 150x150 mm on käyttämäni lämpökromilevyjen vakiokoko. Aluksi tein luonnoksen Fusion360: n segmenteistä, joka tallennettiin dxf -muodossa ja tuotiin sitten Eagleen. Segmenttien välissä on jyrsittyjä rakoja ja ne on yhdistetty vain pienillä siltoilla. Tämä parantaa yksittäisten segmenttien lämmöneristystä ja mahdollistaa siten nopeamman lämmityksen ja vähentää "ylikuulumista". Segmentit täytettiin PCB -jälkillä yläkerroksessa (näkyy punaisena) käyttämällä Eaglen mutkatyökalua. Käytin raideleveyttä ja etäisyyttä 6 mil, mikä on vähimmäiskoko, jonka PCBWay voi valmistaa ilman lisäkustannuksia. Kukin jälki kiertyy kahden läpiviennin välissä, jotka sitten yhdistetään tappeihin pohjakerroksen (sininen) kautta käyttämällä paljon paksumpia 32 miljoonan jälkiä. Kaikilla segmenteillä on yhteinen perusta.

En tehnyt mitään laskelmia tietylle lämpötilan nousulle tarvittavalle lämmitysteholle enkä laskenut segmentin odotettua vastusta. Ajattelin, että mikä tahansa lämmitystehon säätö voidaan tehdä käyttämällä PWM -signaalia vaihtelevalla käyttöjaksolla. Myöhemmin havaitsin, että segmentit lämmittävät kohtuullisen nopeasti, kun niitä syötetään 5 V: n USB -portin kautta ~ 5%: n käyttöjaksolla. Kokonaisvirta lämmitettäessä kaikkia 17 segmenttiä on noin 1,6 A.

Kaikki hallituksen tiedostot löytyvät GitHubistani.

Vaihe 2: Ohjaimen piirilevyn suunnittelu

Ohjaimen piirilevyn suunnittelu
Ohjaimen piirilevyn suunnittelu
Ohjaimen piirilevyn suunnittelu
Ohjaimen piirilevyn suunnittelu
Ohjaimen piirilevyn suunnittelu
Ohjaimen piirilevyn suunnittelu

PCB -lämmittimen ohjaamiseksi valitsen SAMD21E18 MCU: n, jota käytin myös GlassCube -projektissani. Tässä mikrokontrollerissa on tarpeeksi nastoja kaikkien 17 lämmittimen segmentin ohjaamiseen ja DHT22 -anturin lukemiseen. Siinä on myös natiivi USB, ja se voidaan vilkuttaa Adafruitin CircuitPython -käynnistyslataimella. Virtalähteenä ja MCU: n ohjelmoinnissa käytettiin mikro -USB -liitintä. Lämmittimen segmenttejä ohjataan 9 kaksikanavaisella MOSFET -laitteella (SP8K24FRATB). Ne voivat kestää jopa 6 A ja niiden portin kynnysjännite on <2,5 V, joten niitä voidaan vaihtaa MCU: n 3,3 V: n logiikkasignaalilla. Pidin tätä lankaa erittäin hyödyllisenä lämmittimen ohjauspiirin suunnittelussa.

Tilasin piirilevyt PCBWaysta ja elektroniset osat erikseen Mouserista ja koon ne itse kustannussäästöjen vuoksi. Käytin juotospastan annostelijaa, joka asetti osat käsin ja juotti ne infrapuna -IC -lämmittimellä. Kuitenkin suhteellisen suuren komponenttimäärän ja vaaditun uudelleenkäsittelyn vuoksi tämä oli melko työlästä, ja harkitsen tulevaisuudessa kokoonpanopalvelun käyttöä.

Taulutiedostot löytyvät jälleen GitHubistani. Sieltä löydät piirilevyn parannetun version, joka käyttää USB-C-liitintä mikro-USB: n sijaan. Korjasin myös DHT22-anturin reikien välit ja lisäsin 10-nastaisen liittimen, joka helpottaa käynnistyslataimen vilkkumista J-Linkin kautta.

Vaihe 3: CircuitPython Bootloader

Aluksi välähdin SAMD21: tä UF2 -käynnistyslataimella, joka perustuu Adafruitin Trinket M0: een. Käynnistyslatainta oli muutettava hieman, koska Trinketissä on LED -valo, joka on liitetty yhteen lämmitykseen käyttämistäni nastoista. Muuten tämä nasta nousee lyhyeksi ajaksi käynnistyksen jälkeen ja lämmittää liitetyn segmentin täydellä teholla. Käynnistyslataimen vilkkuu kytkemällä J-Link MCU: hon SWD- ja SWC-porttien kautta. Koko prosessi on kuvattu yksityiskohtaisesti Adafruit -verkkosivustolla. Käynnistyslataimen asentamisen jälkeen MCU tunnistetaan flash -asemaan, kun se on liitetty mikro -USB -portin kautta, ja seuraavat käynnistyslataimet voidaan asentaa yksinkertaisesti vetämällä UF2 -tiedosto asemaan.

Seuraavana vaiheena halusin asentaa CircuitPython -käynnistyslataimen. Kuitenkin, koska korttini käyttää monia nastoja, joita ei ole kytketty Trinket M0: een, minun piti ensin muuttaa hieman kortin kokoonpanoa. Adafruit -verkkosivustolla on jälleen hyvä opetus tähän. Pohjimmiltaan täytyy vain kommentoida muutamia ohitettuja nastoja mpconfigboard.h: ssa ja kääntää sitten kaikki uudelleen. Muokatut käynnistyslataustiedostot ovat saatavilla myös GitHubissa.

Vaihe 4: CircuitPython -koodi

CircuitPython -koodi
CircuitPython -koodi
CircuitPython -koodi
CircuitPython -koodi

Kun CircuitPython -käynnistyslatain on asennettu, voit vain ohjelmoida levyn tallentamalla koodisi code.py -tiedostona suoraan USB -muistitikulle. Kirjoittamani koodi lukee DHT22 -anturin ja näyttää sitten vuorotellen lämpötilan ja kosteuden kuumentamalla vastaavia segmenttejä. Kuten jo mainittiin, lämmitys tapahtuu kytkemällä MOSFET -laitteet PWM -signaalilla. Sen sijaan, että määrittäisin nastat PWM -lähtöiksi, generoin koodissa "väärennetyn" PWM -signaalin, jonka kytkentätaajuus on alhainen 100 Hz. Virrankulutuksen pienentämiseksi en kytke segmenttejä päälle samanaikaisesti, vaan peräkkäin yllä olevan kaavion mukaisesti. On myös muutamia temppuja, joiden avulla segmenttien lämmitys on tasaisempaa. Ensinnäkin käyttöjakso on hieman erilainen jokaisella segmentillä. Esimerkiksi "%" -merkin viiva tarvitsee paljon suuremman käyttöjakson sen suuremman vastuksen vuoksi. Huomasin myös, että segmenttejä, joita ympäröivät monet muut segmentit, on lämmitettävä vähemmän. Lisäksi jos segmenttiä lämmitettiin edellisen "ajon" aikana, käyttöjaksoa voidaan lyhentää seuraavassa. Lopuksi lämmitys- ja jäähdytysaika mukautetaan ympäristön lämpötilaan, joka mitataan kätevästi DHT22 -anturilla. Kohtuullisten aikavakioiden löytämiseksi kalibroin näytön itse ilmastoilmastossa, johon minulla on onneksi pääsy töissä.

Löydät koko koodin GitHubistani.

Vaihe 5: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Näytön kokoaminen on melko helppoa ja se voidaan jakaa seuraaviin vaiheisiin

  1. Juotosnaarasliittimet lämmittimen piirilevyyn
  2. Kiinnitä itseliimautuva termokromilevy lämmittimen piirilevyyn
  3. Juotos DHT22 -anturi ohjaimen piirilevyyn ja kiinnitä M2 -pultilla ja mutterilla
  4. Juotos urospistoke -otsat ohjaimen piirilevyyn
  5. Yhdistä molemmat piirilevyt ja aseta 3D -tulostettuun telineeseen

Vaihe 6: Valmis projekti

Valmis projekti
Valmis projekti
Valmis projekti
Valmis projekti

Olen varsin tyytyväinen valmiiseen diplayyn, joka toimii jatkuvasti olohuoneessamme. Tavoite tehdä pienempi, yksinkertaisempi versio alkuperäisestä lämpökromaattisesta näytöstä saavutettiin ehdottomasti, ja haluan kiittää käyttäjää DmitriyU2 vielä kerran ehdotuksesta. Projekti auttoi minua myös parantamaan piirilevyjen suunnittelutaitojani Eaglessa ja sain tietää MOSFET -laitteiden käytöstä kytkiminä.

Suunnittelua voitaisiin ehkä parantaa edelleen tekemällä mukava kotelo piirilevyille. Olen myös ajatellut tehdä digitaalisen kellon samalla tyylillä.

Jos pidät tästä projektista, voit vain tehdä sen uudelleen tai ostaa sen Tindie -myymälästäni. Harkitse myös äänestämistä PCB -suunnitteluhaasteessa.

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

Tuomarien palkinto PCB Design Challengessa

Suositeltava: