Spisu treści:

Termochromowy wyświetlacz temperatury i wilgotności - wersja PCB: 6 kroków (ze zdjęciami)
Termochromowy wyświetlacz temperatury i wilgotności - wersja PCB: 6 kroków (ze zdjęciami)

Wideo: Termochromowy wyświetlacz temperatury i wilgotności - wersja PCB: 6 kroków (ze zdjęciami)

Wideo: Termochromowy wyświetlacz temperatury i wilgotności - wersja PCB: 6 kroków (ze zdjęciami)
Wideo: Testujemy Pigment Termochromowy w żywicy - Co to takiego ????? Ozdoby zmieniające kolor??? 2024, Grudzień
Anonim
Image
Image
Projektowanie PCB grzałki
Projektowanie PCB grzałki

Jakiś czas temu zrealizowałem projekt o nazwie Termochromowy Wyświetlacz Temperatury i Wilgotności, w którym zbudowałem 7-segmentowy wyświetlacz z miedzianych płyt, które były ogrzewane/chłodzone przez elementy Peltiera. Miedziane płytki pokryto folią termochromową, która zmienia kolor pod wpływem temperatury. Ten projekt to mniejsza wersja wyświetlacza, który zamiast peltiera wykorzystuje płytkę PCB ze śladami grzejnymi zgodnie z sugestią użytkownika DmitriyU2 w komentarzach. Zastosowanie grzałki PCB pozwala na znacznie prostszą i bardziej kompaktową konstrukcję. Ogrzewanie jest również wydajniejsze, co prowadzi do szybszej zmiany koloru.

Obejrzyj wideo, aby zobaczyć, jak działa wyświetlacz.

Ponieważ zostało mi kilka płytek drukowanych, sprzedam również ten wyświetlacz w moim sklepie Tindie.

Kieszonkowe dzieci

  • Płytka grzałki (zobacz mój GitHub dla plików Gerber)
  • Kontrola PCB (zobacz mój GitHub dla plików Gerber i BoM)
  • Czujnik DHT22 (np. ebay.de)
  • Stojak z nadrukiem 3D (zobacz mój GitHub dla pliku stl)
  • Arkusz kleju termochromowego, 150x150 mm, 30-35°C (SFXC)
  • Śruba M2x6 + nakrętka
  • 2x listwa pinowa 1x9, 2,54 mm (np. mouser.com)
  • 2x złącze płytki SMD 1x9, 2,54 mm (np. mouser.com)

Krok 1: Projektowanie PCB grzałki

Projektowanie PCB grzałki
Projektowanie PCB grzałki
Projektowanie płytki drukowanej grzałki
Projektowanie płytki drukowanej grzałki

Płytka grzałki została zaprojektowana w Eagle. Wymiary PCB to 100x150 mm, ponieważ 150x150 mm to standardowy rozmiar użytych przeze mnie arkuszy termochromowych. Najpierw wykonałem szkic segmentów w Fusion360, który został zapisany jako dxf, a następnie zaimportowany do Eagle. Segmenty mają wyfrezowane szczeliny między nimi i są połączone tylko małymi mostkami. Poprawia to izolację termiczną poszczególnych segmentów, a tym samym umożliwia szybsze nagrzewanie i zmniejsza „przeniki cieplne”. Segmenty wypełniono śladami PCB na górnej warstwie (widoczne na czerwono) za pomocą narzędzia meander w Eagle. Użyłem szerokości ścieżki i rozstawu 6 mil, co jest minimalnym rozmiarem, który może być wyprodukowany przez PCBWay bez dodatkowych kosztów. Każdy ślad wije się pomiędzy dwoma przelotkami, które są następnie łączone z pinami poprzez dolną warstwę (widoczną na niebiesko) przy użyciu znacznie grubszych 32-milimetrowych ścieżek. Wszystkie segmenty mają wspólną płaszczyznę.

Nie wykonałem żadnych obliczeń mocy grzewczej wymaganej do określonego wzrostu temperatury ani nie obliczałem oczekiwanej rezystancji segmentu. Pomyślałem, że każdej regulacji mocy grzewczej można dokonać za pomocą sygnału PWM o zmiennym cyklu pracy. Później odkryłem, że segmenty nagrzewają się dość szybko, gdy są zasilane przez port USB 5 V przy ~5% cyklu pracy. Całkowity prąd podczas podgrzewania wszystkich 17 segmentów wynosi około 1,6 A.

Wszystkie pliki forum można znaleźć na moim GitHubie.

Krok 2: Projektowanie PCB sterownika

Projektowanie płytki drukowanej sterownika
Projektowanie płytki drukowanej sterownika
Projektowanie płytki drukowanej sterownika
Projektowanie płytki drukowanej sterownika
Projektowanie płytki drukowanej sterownika
Projektowanie płytki drukowanej sterownika

Do sterowania grzałką PCB wybrałem MCU SAMD21E18, którego użyłem również w moim projekcie GlassCube. Ten mikrokontroler ma wystarczającą ilość pinów do sterowania wszystkimi 17 segmentami grzałki i odczytywania czujnika DHT22. Posiada również natywny port USB i może być flashowany za pomocą bootloadera Adafruit CircuitPython. Jako zasilanie oraz do programowania MCU wykorzystano złącze micro USB. Segmenty grzałki są sterowane przez 9 dwukanałowych tranzystorów MOSFET (SP8K24FRATB). Mogą wytrzymać do 6 A i mają napięcie progowe bramki <2,5 V, dzięki czemu mogą być przełączane sygnałem logicznym 3,3 V z MCU. Uważam, że ten wątek bardzo mi pomógł zaprojektować obwód sterowania grzałką.

Zamówiłem płytki PCB od PCBWay i części elektroniczne oddzielnie od Mouser i sam zmontowałem płytki, aby zaoszczędzić koszty. Użyłem dozownika pasty lutowniczej, ułożyłem części ręcznie i przylutowałem je grzałką IC na podczerwień. Jednak ze względu na stosunkowo dużą ilość komponentów i wymaganą przeróbkę było to dość żmudne i rozważam skorzystanie z usługi montażu w przyszłości.

Ponownie pliki tablicy można znaleźć na moim GitHubie. Można tam znaleźć ulepszoną wersję PCB, która wykorzystuje złącze USB-C zamiast micro USB. Poprawiłem również rozstaw otworów przelotowych dla czujnika DHT22 i dodałem 10-pinowe złącze dla łatwiejszego flashowania bootloadera przez J-Link.

Krok 3: Bootloader CircuitPython

Na początku sflashowałem SAMD21 z bootloaderem UF2 opartym na Trinket M0 Adafruita. Bootloader musiał zostać nieco zmodyfikowany, ponieważ Trinket ma diodę LED podłączoną do jednego z pinów, których używam do grzania. W przeciwnym razie ten pin będzie przez krótki czas po rozruchu przechodził w stan wysoki i ogrzewał podłączony segment z pełną mocą. Flashowanie bootloadera odbywa się poprzez podłączenie J-Link do MCU przez porty SWD i SWC. Cały proces jest szczegółowo opisany na stronie Adafruit. Po zainstalowaniu bootloadera MCU jest rozpoznawany jako dysk flash po podłączeniu przez port micro USB, a kolejne bootloadery można po prostu zainstalować, przeciągając plik UF2 na dysk.

W następnym kroku chciałem zainstalować bootloader CircuitPython. Jednak ponieważ moja płyta używa wielu pinów, które nie są podłączone do Trinket M0, najpierw musiałem nieco zmodyfikować konfigurację płyty. Ponownie na stronie Adafruit znajduje się świetny samouczek. Zasadniczo wystarczy zakomentować kilka ignorowanych pinów w pliku mpconfigboard.h, a następnie wszystko przekompilować. Niestandardowe pliki bootloadera są również dostępne na moim GitHub.

Krok 4: Kod CircuitPython

Kod obwodu Pythona
Kod obwodu Pythona
Kod obwodu Pythona
Kod obwodu Pythona

Po zainstalowaniu bootloadera CircuitPython możesz po prostu zaprogramować płytkę, zapisując swój kod jako plik code.py bezpośrednio na dysku flash USB. Kod, który napisałem odczytuje czujnik DHT22 a następnie naprzemiennie wyświetla temperaturę i wilgotność podgrzewając odpowiednie segmenty. Jak już wspomniano ogrzewanie odbywa się poprzez przełączanie tranzystorów MOSFET sygnałem PWM. Zamiast konfigurować piny jako wyjścia PWM, wygenerowałem „fałszywy” sygnał PWM o niskiej częstotliwości przełączania 100 Hz w kodzie za pomocą opóźnień. Aby jeszcze bardziej obniżyć pobór prądu, nie włączam segmentów jednocześnie, ale sekwencyjnie, jak pokazano na powyższym schemacie. Jest też kilka sztuczek, aby nagrzewanie się segmentów było bardziej równomierne. Przede wszystkim cykl pracy jest nieco inny dla każdego segmentu. Na przykład kreska znaku „%” wymaga znacznie większego cyklu pracy ze względu na wyższą odporność. Odkryłem również, że segmenty, które są otoczone wieloma innymi segmentami, muszą być mniej ogrzewane. Ponadto, jeśli segment został nagrzany w poprzednim „przebiegu”, cykl pracy może zostać zmniejszony w następnym. Wreszcie czas ogrzewania i chłodzenia jest dostosowywany do temperatury otoczenia, którą wygodnie mierzy się za pomocą czujnika DHT22. Aby znaleźć rozsądne stałe czasowe, skalibrowałem wyświetlacz w komorze klimatycznej, do której na szczęście mam dostęp w pracy.

Pełny kod można znaleźć na moim GitHubie.

Krok 5: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Montaż wyświetlacza jest dość łatwy i można go podzielić na następujące kroki

  1. Przylutuj żeńskie listwy pinowe do płytki drukowanej grzejnika
  2. Przymocuj samoprzylepny arkusz termochromowy do płytki drukowanej grzejnika
  3. Przylutuj czujnik DHT22 do płytki sterownika i przymocuj śrubą M2 i nakrętką
  4. Przylutuj męskie listwy pinowe do płytki kontrolera;
  5. Połącz obie płytki i umieść je w stojaku z nadrukiem 3D

Krok 6: Gotowy projekt

Zakończony projekt
Zakończony projekt
Zakończony projekt
Zakończony projekt

Jestem bardzo zadowolony z gotowego obrazu, który teraz cały czas wisi w naszym salonie. Cel stworzenia mniejszej, prostszej wersji mojego oryginalnego wyświetlacza termochromowego został zdecydowanie osiągnięty i chciałbym jeszcze raz podziękować użytkownikowi DmitriyU2 za sugestię. Projekt pomógł mi również poprawić moje umiejętności projektowania PCB w Eagle i dowiedziałem się o wykorzystaniu tranzystorów MOSFET jako przełączników.

Można by jeszcze bardziej ulepszyć projekt, robiąc ładną obudowę dla płytek drukowanych. Zastanawiam się też nad zrobieniem zegara cyfrowego w tym samym stylu.

Jeśli podoba Ci się ten projekt, możesz go po prostu przerobić lub kupić w moim sklepie Tindie. Rozważ także głosowanie na mnie w wyzwaniu projektowania PCB.

Wyzwanie projektowe PCB
Wyzwanie projektowe PCB
Wyzwanie projektowe PCB
Wyzwanie projektowe PCB

Nagroda jurorów w konkursie PCB Design Challenge

Zalecana: